home *** CD-ROM | disk | FTP | other *** search
/ ASP Advantage 1993 / The Association of Shareware Professionals Advantage CD-ROM 1993.iso / files / utilties / listr311 / listr.doc < prev    next >
Text File  |  1992-07-04  |  123KB  |  3,279 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.          ┌─────────────────────────────────────────────────────────┐
  8.          │                                                         │
  9.          │             LISTR - A Text Formatting Program           │
  10.          │                                                         │
  11.          │                     Version 3.11                        │
  12.          │                  February  22, 1992                     │
  13.          │                                                         │
  14.          └─────────────────────────────────────────────────────────┘
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.         ─────────────────────────────────────────────────────────────
  55.         Copyright (c) 1986,87,88,89,90,92             Brent W. Miller
  56.         565 Ninth Avenue, Menlo Park, CA 94025  CompuServe 71555,1113
  57.         ─────────────────────────────────────────────────────────────
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.         Version 3.11                                    February 22, 1992
  66.  
  67.  
  68.         LISTR ───────────────────────────────── A Text Formatting Program
  69.  
  70.  
  71.                                 TABLE OF CONTENTS
  72.  
  73.         LISTR is Shareware ......................................... iii
  74.         Disclaimer and Agreement ................................... iii
  75.         Registering LISTR ..........................................   v
  76.         Making Shareware work for you ..............................   v
  77.         INTRODUCTION ...............................................   1
  78.         NOTATION ...................................................   1
  79.         INVOKING LISTR .............................................   2
  80.         WILDCARD FILE SPECIFICATIONS ...............................   4
  81.         LISTR COMMANDS .............................................   4
  82.         COMMAND SUMMARY ............................................   4
  83.         LISTR Control Commands .....................................   5
  84.             CmdLead ................................................   5
  85.             AltCmdLead .............................................   5
  86.             PrintCmd ...............................................   6
  87.             PrintAlt ...............................................   6
  88.             Replace ................................................   6
  89.             Synonym ................................................   7
  90.             Rem ....................................................   7
  91.         Listing Format Commands ....................................   7
  92.             PageLines #Lines .......................................   7
  93.             PageCols #Columns ......................................   8
  94.             TopLine #Line ..........................................   8
  95.             BotLine #Line ..........................................   8
  96.             Title #Line ............................................   9
  97.             MarginTxt ..............................................   9
  98.             PageNo .................................................   9
  99.             LineNo .................................................  10
  100.             LeftMgn ................................................  10
  101.             OddMgn .................................................  11
  102.             EvenMgn ................................................  11
  103.             TextLen ................................................  11
  104.             TitleMgns ..............................................  12
  105.             TitleLeftMgn ...........................................  12
  106.             TitleOddMgn ............................................  13
  107.             TitleEvenMgn ...........................................  13
  108.             TitleLen ...............................................  14
  109.             Wrap ...................................................  15
  110.             WrapIndent .............................................  16
  111.             WrapMark ...............................................  17
  112.             AutoIndent .............................................  18
  113.             Break ..................................................  19
  114.             SetBreak ...............................................  20
  115.             Tabs ...................................................  20
  116.             SetTabs ................................................  21
  117.             ClearTabs ..............................................  21
  118.             Xlate ..................................................  21
  119.             SetXlate ...............................................  22
  120.             NewPage ................................................  23
  121.             CondPg .................................................  23
  122.             KeepTo .................................................  23
  123.             EndKeep ................................................  24
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.         Version 3.11                 Page i             February 22, 1992
  131.  
  132.  
  133.         LISTR ───────────────────────────────── A Text Formatting Program
  134.  
  135.  
  136.                           TABLE OF CONTENTS (continued)
  137.  
  138.             Include ................................................  24
  139.             NewFilePg ..............................................  25
  140.             NewFileLn ..............................................  25
  141.         Printer Control Commands ...................................  26
  142.             Eject ..................................................  26
  143.             FormFeed ...............................................  26
  144.             FormFeedChar ...........................................  26
  145.             SetupFile ..............................................  27
  146.             SetupStrg ..............................................  28
  147.         TITLES AND MARGIN TEXT .....................................  28
  148.         Titles .....................................................  28
  149.         Margin Text ................................................  29
  150.         Margin Text on Skipped Lines ...............................  30
  151.         Special Print Tokens .......................................  30
  152.         Format Specs ...............................................  32
  153.         Enclosing Text in Boxes and Forms ..........................  32
  154.         COMMAND FILES ..............................................  34
  155.         LISTR COMMANDS ON THE COMMAND LINE .........................  36
  156.         DOS DEVICES ................................................  38
  157.         I/O REDIRECTION ............................................  38
  158.         LISTR AND BATCH FILES ......................................  39
  159.         LISTR EXIT CODE ............................................  39
  160.         LINE LENGTHS, CARRIAGE RETURN AND LINE FEED ................  40
  161.         QUESTIONS AND ANSWERS ......................................  41
  162.         LISTR COMMAND REFERENCE (by function) ......................  42
  163.         LISTR COMMAND REFERENCE (alphabetical) .....................  43
  164.         LISTR TITLE TOKEN REFERENCE ................................  44
  165.         LISTR Registration Form ....................................  45
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.         Version 3.11                 Page ii            February 22, 1989
  196.  
  197.  
  198.         LISTR ───────────────────────────────── A Text Formatting Program
  199.  
  200.  
  201.         LISTR is Shareware
  202.         ──────────────────
  203.         Shareware distribution gives users a chance to try software
  204.         before buying it.  If you try a Shareware program and continue
  205.         using it, you are expected to register.  Individual programs
  206.         differ on details -- some request registration while others
  207.         require it, some specify a maximum trial period.  With
  208.         registration, you get anything from the simple right to
  209.         continue using the software to an updated program with printed
  210.         manual.
  211.  
  212.         Copyright laws apply to both Shareware and commercial
  213.         software, and the copyright holder retains all rights, with a
  214.         few specific exceptions as stated below.  Shareware authors
  215.         are accomplished programmers, just like commercial authors,
  216.         and the programs are of comparable quality.  (In both cases,
  217.         there are good programs and bad ones!) The main difference is
  218.         in the method of distribution.  The author specifically grants
  219.         the right to copy and distribute the software, either to all
  220.         and sundry or to a specific group.  For example, some authors
  221.         require written permission before a commercial disk vendor may
  222.         copy their Shareware.
  223.  
  224.         Shareware is a distribution method, not a type of software.
  225.         You should find software that suits your needs and pocketbook,
  226.         whether it's commercial or Shareware.  The Shareware system
  227.         makes fitting your needs easier, because you can try before
  228.         you buy.  And because the overhead is low, prices are low
  229.         also.  Shareware has the ultimate money-back guarantee -- if
  230.         you don't use the product, you don't pay for it.
  231.  
  232.         Disclaimer and Agreement
  233.         ────────────────────────
  234.         Users of LISTR must accept this disclaimer of warranty:
  235.  
  236.         "LISTR is supplied as is.  The author disclaims all
  237.         warranties, expressed or implied, including, without
  238.         limitation, the warranties of merchantability and of fitness
  239.         for any purpose.  The author assumes no liability for damages,
  240.         direct or consequential, which may result from the use of
  241.         LISTR."
  242.  
  243.         LISTR is a "shareware program" and is provided at no charge to
  244.         the user for evaluation.  Feel free to share it with your
  245.         friends, but please do not give it away altered or as part of
  246.         another system.  The essence of "user-supported" software is
  247.         to provide personal computer users with quality software
  248.         without high prices, and yet to provide incentive for
  249.         programmers to continue to develop new products.  If you find
  250.         this program useful and find that you are using LISTR and
  251.         continue to use LISTR after a reasonable trial period, you
  252.         must make a registration payment of $15.00 to Brent Miller.
  253.         The $15.00 registration fee will license one copy for use on
  254.         any one computer at any one time.  You must treat this
  255.         software just like a book.  An example is that this software
  256.         may be used by any number of people and may be freely moved
  257.         from one computer location to another, so long as there is no
  258.  
  259.  
  260.         Version 3.11                Page iii            February 22, 1989
  261.  
  262.  
  263.         LISTR ───────────────────────────────── A Text Formatting Program
  264.  
  265.         possibility of it being used at one location while it's being
  266.         used at another.  Just as a book cannot be read by two
  267.         different persons at the same time.
  268.  
  269.         Commercial users of LISTR must register and pay for their
  270.         copies of LISTR within 30 days of first use or their license
  271.         is withdrawn.  Site-License arrangements may be made by
  272.         contacting Brent Miller.
  273.  
  274.         Anyone distributing LISTR for any kind of remuneration must
  275.         first contact Brent Miller at the address below for
  276.         authorization.  This authorization will be automatically
  277.         granted to distributors recognized by the (ASP) as adhering to
  278.         its guidelines for shareware distributors, and such
  279.         distributors may begin offering LISTR immediately (However
  280.         Brent Miller must still be advised so that the distributor can
  281.         be kept up-to-date with the latest version of LISTR.).
  282.  
  283.         You are encouraged to pass a copy of LISTR along to your
  284.         friends for evaluation.  Please encourage them to register
  285.         their copy if they find that they can use it.
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.         Version 3.11                 Page iv            February 22, 1989
  326.  
  327.  
  328.         LISTR ───────────────────────────────── A Text Formatting Program
  329.  
  330.         Registering LISTR
  331.         ─────────────────
  332.         As a registered user of LISTR, you will be entitled to user
  333.         support for a period of 90 days from the time that your
  334.         registration is received by the author.  Support includes
  335.         answers to any questions you may have about the use of LISTR,
  336.         and fixes to any serious problems that may be discovered.  You
  337.         will also receive the latest version of LISTR if you are
  338.         registering an earlier version, and will receive any LISTR
  339.         upgrades that occur during the support period.  You will be
  340.         notified of future upgrades after the support period.  You may
  341.         obtain a copy of these upgrades directly from the author for a
  342.         $5.00 shipping and handling charge, or obtain them through any
  343.         other shareware distribution channels.
  344.  
  345.         Submit your request for support by mail to the author at the
  346.         address below, or by CompuServe mail to Brent Miller
  347.         71555,1113.  You will receive a reply through the same
  348.         channel.
  349.  
  350.         I hope you find LISTR helpful and easy to use.  If you do then
  351.         please register as a LISTR user by sending your name, address,
  352.         and a check or money order for $15.00 (US funds only) to:
  353.  
  354.         Brent W. Miller
  355.         565 Ninth Avenue
  356.         Menlo Park, CA 94025
  357.  
  358.         Please indicate that you are registering LISTR, and state what
  359.         version of LISTR you currently use.  A registration form is
  360.         included in the distribution for your convenience.  Simply
  361.         print it and send it in to register.
  362.  
  363.         Making Shareware work for you
  364.         ─────────────────────────────
  365.         This program is produced by a member of the Association of
  366.         Shareware Professionals (ASP).  ASP wants to make sure that
  367.         the shareware principle works for you.  If you are unable to
  368.         resolve a shareware-related problem with an ASP member by
  369.         contacting the member directly, ASP may be able to help.  The
  370.         ASP Ombudsman can help you resolve a dispute or problem with
  371.         an ASP member, but does not provide technical support for
  372.         members' products.  Please write to the ASP Ombudsman at 545
  373.         Grover Road, Muskegon, MI 49442 or send a CompuServe message
  374.         via CompuServe Mail to ASP Ombudsman 70007,3536.
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.         Version 3.11                 Page v             February 22, 1989
  391.  
  392.  
  393.         LISTR ───────────────────────────────── A Text Formatting Program
  394.  
  395.         INTRODUCTION
  396.         ────────────
  397.         LISTR is a text formatter.  It was written with the primary
  398.         objective of formatting program listings and other simple
  399.         ASCII text files for printing.  With LISTR you may add headers
  400.         and footers that include file names and dates, page numbers
  401.         and other text.  You can number lines, control margins, and
  402.         keep important blocks of text together on a page.  Text may be
  403.         included in the margins (e.g., change bars or a box around a
  404.         page).
  405.  
  406.         LISTR is NOT a "pretty print" program.  It does not re-arrange
  407.         the listing to conform to any style guide.  LISTR provides
  408.         considerable control over the overall appearance of a listing,
  409.         but does not interpret the text.  It is not specific to any
  410.         programming language.
  411.  
  412.         LISTR also provides for character translation (e.g., to
  413.         convert the line graphic characters in a file to printable
  414.         ASCII characters), and for expansion of tabs.
  415.  
  416.         LISTR has a rich set of commands that make it quite versatile.
  417.         The versatility is further enhanced by the ability to redefine
  418.         commands.
  419.  
  420.         LISTR formatting commands may be included in the source file.
  421.         Formatting commands may also be included in an optional
  422.         command file or on the command line when LISTR is invoked.
  423.         All commands start with a command prefix.  This prefix may be
  424.         re-defined so that commands included in the source file are
  425.         interpreted as comments by a compiler or assembler that will
  426.         process the source file (see COMMAND FILES for examples).
  427.  
  428.         This document describes the use of LISTR and its commands.
  429.  
  430.         NOTATION
  431.         ────────
  432.         Several notational conventions are used in this document.
  433.         When defining commands and their parameters, optional
  434.         parameters are enclosed in square brackets [].  Parentheses
  435.         () are used to emphasize grouping.
  436.  
  437.         Where a parameter must be selected from one of several
  438.         alternatives, the alternatives are separated by vertical bars
  439.         | (indicating a logical OR).  All specific parameters are
  440.         shown in uppercase (these may be entered in upper or lower
  441.         case when using LISTR).
  442.  
  443.         Named numeric parameters are preceded by a pound sign #.
  444.  
  445.         A parameter list of variable length is indicated by an
  446.         ellipsis ... .  The following example illustrates these
  447.         conventions:
  448.  
  449.             SetTabs ALL | (#Column [#Column [#Column [ ... ]]])
  450.  
  451.         SetTabs may take a single parameter, the word ALL, or a list
  452.         of one or more Column numbers.
  453.  
  454.  
  455.         Version 3.11                 Page 1             February 22, 1989
  456.  
  457.  
  458.         LISTR ───────────────────────────────── A Text Formatting Program
  459.  
  460.  
  461.         Parameters enclosed in angled brackets <> are to be replaced
  462.         by a name or other string.  The following parameters will be
  463.         seen in some of the command definitions:
  464.  
  465.          Parameter  Description                  Example
  466.          ───────────────────────────────────────────────────────────
  467.             <cde>  - Decimal character code:      65 (ASCII for 'A')
  468.            $<hex>  - Hexadecimal character code: $41 (ASCII for 'A')
  469.            '<chr>' - Quoted ASCII character:     'A'
  470.            '<stg>' - Quoted ASCII string:        'ABCDEF01234'
  471.            <delim> - Delimiting Character         /
  472.  
  473.                      Note: the single quote (') may not be included
  474.                      in these quoted strings.  Use the ASCII code
  475.                      (39 or $27) to specify the single quote.
  476.  
  477.         Other parameter names should be self explanatory.  These
  478.         conventions should become obvious through the examples given
  479.         along the way.
  480.  
  481.         In some examples, the column numbers of characters on the
  482.         input and output lines are important in illustrating the
  483.         effect of the example.  In those cases, a ruler line such as
  484.         the following will be used:
  485.  
  486.                ....:....|....:....|....:....|....:....|....:....|..
  487.  
  488.         The first '.' represents column 1 of the input or output.
  489.         Each ':' marks a column which is a multiple of 5, and each '|'
  490.         marks a column which is a multiple of 10.
  491.  
  492.         INVOKING LISTR
  493.         ──────────────
  494.         LISTR is provided in the form of a DOS .EXE file, LISTR.EXE.
  495.         It is invoked like any .EXE file, by entering the name
  496.         (without the .EXE extension).  LISTR takes a number of
  497.         parameters.  The syntax is as follows:
  498.  
  499.          LISTR <list file> [<command file>] [<output file>]
  500.                  [listr command [listr command [...]]]
  501.  
  502.         LISTR may be followed by optional parameters for a list
  503.         file, a command file, and an output file.  Drive and Path
  504.         specifiers may be included in these names.  These three
  505.         parameters may be followed by optional listr commands.
  506.  
  507.         <list file> is the name of the file to be listed.  DOS file
  508.         name wildcards ?  and * may be used in <list file>.  All files
  509.         matching the filespec will be listed.
  510.  
  511.         <command file> is an optional file of LISTR commands that will
  512.         be executed before <list file> is listed.  This command file
  513.         is intended to setup a general document format, and to provide
  514.         LISTR commands which are used in common for a number of files.
  515.         Command files might be created for Assembly Language, Pascal
  516.         and C source files, and for general text files.  See COMMAND
  517.         FILES for more information on creation and use of these files.
  518.  
  519.  
  520.         Version 3.11                 Page 2             February 22, 1989
  521.  
  522.  
  523.         LISTR ───────────────────────────────── A Text Formatting Program
  524.  
  525.  
  526.         The hyphen character (-) may be used in place of <command
  527.         file> to prevent use of any command file.
  528.  
  529.         <output file> is the name of a file to which the formatted
  530.         listing will be written.  If no <output file> is specified,
  531.         the listing goes to the default print device, PRN:.  PRN:
  532.         is the same as LPT1: and is the first parallel printer.
  533.  
  534.         The first three command line parameters for LISTR are always
  535.         interpreted as <list file> <command file> <output file>.
  536.  
  537.         <list file> is a required parameter.  If no parameters are
  538.         specified, a brief description of the correct usage of LISTR
  539.         will be displayed.
  540.  
  541.         To use the default for <command file> and/or <output file>
  542.         parameters while specifying a later one, the default value
  543.         is indicated by an asterisk (*).  The asterisk must be
  544.         separated from the preceding and following parameters (or
  545.         asterisks) by one or more spaces.  A hyphen (-) may be used
  546.         in place of the <command file> parameter to prevent the use
  547.         of any command file.
  548.  
  549.         Examples:
  550.  
  551.             LISTR SOURCE.TXT
  552.  
  553.         In this example, the file SOURCE.TXT will be listed.  Since
  554.         no command file is specified, the file LISTRCMD.TXT will be
  555.         searched for in the drive and path that were in effect when
  556.         LISTR was started.  If not found there, the drive and path
  557.         specified by the LISTRCMD= environment string will be searched
  558.         (see COMMAND FILES).  No command file will be used if the file
  559.         is not found there (or if LISTRCMD= was not set).  The listing
  560.         will go to the printer because no output file is specified.
  561.  
  562.             listr A:*.pas listrcmd.pas C:\temp\output.prn
  563.  
  564.         All files with the extension .PAS on drive A:  will be listed.
  565.         The command file listrcmd.pas will be loaded before the
  566.         listing starts, and the listing will go to the file output.prn
  567.         in the TEMP directory on drive C:.  The file listrcmd.pas will
  568.         be searched for on startup drive and path and (if not found)
  569.         on the drive and path specified by SET LISTRCMD=.  Specifying
  570.         listrcmd.pas is redundant, since that is the default name
  571.         which will be used for *.pas.
  572.  
  573.             LISTR xyzabc.asm * temp.out
  574.  
  575.         The file xyzabc.asm will be listed.  The asterisk requests the
  576.         default command file LISTRCMD.ASM to be used if it is found.
  577.         The listing will go to the file TEMP.OUT.  Since no path or
  578.         drive is specified for any of these files, the currently
  579.         logged drive and path will be used (unless a command file path
  580.         has been specified by SET LISTRCMD=).
  581.  
  582.             listr ODDFILE.TXT -
  583.  
  584.  
  585.         Version 3.11                 Page 3             February 22, 1989
  586.  
  587.  
  588.         LISTR ───────────────────────────────── A Text Formatting Program
  589.  
  590.  
  591.         The file ODDFILE.TXT will be listed to PRN:.  No command file
  592.         will be used.
  593.  
  594.         Optional LISTR commands may be specified after the three file
  595.         names.  Commands included on the command line are executed
  596.         after the command file is loaded, so they may be used to
  597.         override commands in the command file.  Each command must be
  598.         preceded by a virgule (/) or a hyphen (-).  LISTR commands are
  599.         described in the LISTR COMMANDS section below.  Special
  600.         considerations in using these commands from the command line
  601.         are described in LISTR COMMANDS ON THE COMMAND LINE.
  602.  
  603.         WILDCARD FILE SPECIFICATIONS
  604.         ────────────────────────────
  605.         LISTR will accept wildcard file specifications for <list file>
  606.         and for files in Include statements.  Wildcard expressions use
  607.         the characters * and ?  to match multiple files.  Files will
  608.         be listed in directory order.  The default command file name
  609.         will be formed from the first <list file> found.
  610.  
  611.         LISTR COMMANDS
  612.         ──────────────
  613.         All LISTR commands must start with one of two prefix strings,
  614.         the Command Lead or the Alternate Command Lead.  When LISTR is
  615.         invoked, the Command Lead is ..  and the Alternate Command
  616.         Lead is disabled.  These prefix strings may be defined by the
  617.         user (see the CmdLead and AltCmdLead commands).
  618.  
  619.         LISTR examines each line of the list file to see if it
  620.         contains the Command prefix or the Alternate Command Prefix
  621.         as the first non-blank characters.  If either prefix is found,
  622.         the text following the command is interpreted as a LISTR
  623.         Command.  If it is a valid command, the command is executed.
  624.         If not, an error message is displayed and the line is ignored.
  625.         Extra text after that expected by commands with a fixed number
  626.         of parameters is ignored.
  627.  
  628.         The line containing a command may be printed.  The default
  629.         condition is that command lines are NOT printed (see PrintCmd
  630.         and PrintAlt).
  631.  
  632.         COMMAND SUMMARY
  633.         ───────────────
  634.         This section divides the commands into three general groups
  635.         and gives a brief description of each command.  The commands
  636.         described are the default commands which are active when
  637.         LISTR is first activated.  The commands can be re-defined by
  638.         the user (see the Replace and Synonym commands).
  639.  
  640.         Each command is listed between two horizontal lines, along
  641.         with the parameters it takes.  For commands that take a
  642.         numeric parameter the minimum and maximum values are shown.
  643.         The default parameter setting is shown in curly brackets.  The
  644.         following example illustrates the format:
  645.  
  646.  
  647.  
  648.  
  649.  
  650.         Version 3.11                 Page 4             February 22, 1989
  651.  
  652.  
  653.         LISTR ───────────────────────────────── A Text Formatting Program
  654.  
  655.             ─────────────────────────────────────────────────────────
  656.             Command  #value               min <= # <= max   {default}
  657.             ─────────────────────────────────────────────────────────
  658.  
  659.         LISTR Control Commands
  660.         ──────────────────────
  661.         The commands in this group define what commands LISTR
  662.         responds to and whether those commands are printed.
  663.  
  664.             ─────────────────────────────────────────────────────────
  665.             CmdLead  <prefix>                                    {..}
  666.             ─────────────────────────────────────────────────────────
  667.               The string <prefix> becomes the current Command Prefix.
  668.               The default for CmdLead is two periods (..).  If no
  669.               string is specified in this command, the command prefix
  670.               becomes inactive.  If both CmdLead and AltCmdLead are
  671.               set inactive, LISTR will no longer recognize any
  672.               commands.
  673.  
  674.               Example:
  675.  
  676.                 ..CmdLead  (*
  677.  
  678.                   The default command lead .. prefixes the command,
  679.                   since this example assumes that the prefix has not
  680.                   been re-defined before.  The new command prefix is
  681.                   (* as a result of this command.
  682.  
  683.             ─────────────────────────────────────────────────────────
  684.             AltCmdLead  <prefix>                                   {}
  685.             ─────────────────────────────────────────────────────────
  686.               The string <prefix> becomes the current Alternate
  687.               Command Prefix.  AltCmdLead is undefined (inactive) by
  688.               default.
  689.  
  690.               Example:
  691.  
  692.                 .. ALTCMDLEAD {@-
  693.  
  694.                   The alternate command prefix becomes {@- as a
  695.                   result of this command.
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.         Version 3.11                 Page 5             February 22, 1989
  716.  
  717.  
  718.         LISTR ───────────────────────────────── A Text Formatting Program
  719.  
  720.             ─────────────────────────────────────────────────────────
  721.             PrintCmd  ON|OFF                                    {OFF}
  722.             ─────────────────────────────────────────────────────────
  723.               Turns ON or OFF the printing of lines starting with the
  724.               Command Prefix. The default is OFF.
  725.  
  726.               Examples:
  727.  
  728.                 ..printcmd On
  729.  
  730.                   After this command is executed, any line
  731.                   containing the active command prefix will be
  732.                   printed.
  733.  
  734.                 .. PrintCmd off
  735.  
  736.                   Lines containing the command prefix will not be
  737.                   printed after this command is executed.
  738.  
  739.             ─────────────────────────────────────────────────────────
  740.             PrintAlt  ON|OFF                                    {OFF}
  741.             ─────────────────────────────────────────────────────────
  742.               Turns ON or OFF the printing of lines starting with the
  743.               alternate command prefix.  The default is OFF.  See
  744.               PrintCmd above for examples.
  745.  
  746.             ─────────────────────────────────────────────────────────
  747.             Replace  <old command> <new command>
  748.             ─────────────────────────────────────────────────────────
  749.               Replaces <old command> with <new command>.  <old
  750.               command> is no longer recognized.  This command can be
  751.               used to change a command name for compatibility with a
  752.               compiler.  Use care if using existing command names for
  753.               <new command>; the re-defined function will replace the
  754.               old function.  The old function will be lost unless it
  755.               was previously assigned a new name with Synonym.  Only
  756.               the first 32 characters of <new command> are
  757.               significant.
  758.  
  759.               Example:
  760.  
  761.                 ..replace Include I
  762.  
  763.                   'I' will now be recognized as the Include command.
  764.                   This could be used along with an alternate prefix
  765.                   of {$ to cause LISTR to recognize the Turbo Pascal
  766.                   {$I directive to print include files.
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.         Version 3.11                 Page 6             February 22, 1989
  781.  
  782.  
  783.         LISTR ───────────────────────────────── A Text Formatting Program
  784.  
  785.             ─────────────────────────────────────────────────────────
  786.             Synonym  <command> <command synonym>
  787.             ─────────────────────────────────────────────────────────
  788.               <command synonym> becomes an alternate command for
  789.               <command>.  The original <command> is still recognized.
  790.               As in Replace, use care if using active command names
  791.               for synonyms.  Only the first 32 characters of <command
  792.               synonym> are retained.
  793.  
  794.               Example:
  795.  
  796.                 .. SYNONYM NewPage PageDown
  797.  
  798.                   PageDown or NewPage may now be used to force a new
  799.                   page to be started.
  800.  
  801.             ─────────────────────────────────────────────────────────
  802.             Rem
  803.             ─────────────────────────────────────────────────────────
  804.               Rem allows remarks or comments to be included in source
  805.               files.  Text on a line following Rem is ignored.
  806.  
  807.               Example:
  808.  
  809.                 ..REM This will show in the source, but will not list.
  810.                 ..REM unless PrintCmd is turned on.
  811.  
  812.         Listing Format Commands
  813.         ───────────────────────
  814.         Commands in this group control the format of the listing
  815.         output.
  816.  
  817.             ─────────────────────────────────────────────────────────
  818.             PageLines #Lines                   1 <= # <= 32767   {66}
  819.             ─────────────────────────────────────────────────────────
  820.               Sets the total page length to #Lines.  PageLines
  821.               defaults to 66, which is the number of lines on an ll
  822.               inch page at the standard 6 lines per inch.  #Lines must
  823.               be greater than the currently active BotLine in order to
  824.               take effect.  Decrease BotLine before reducing PageLines
  825.               to avoid conflict.
  826.  
  827.               Example:
  828.  
  829.                 ..PageLines 88
  830.  
  831.                   Set the page length to 88 lines.
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.         Version 3.11                 Page 7             February 22, 1989
  846.  
  847.  
  848.         LISTR ───────────────────────────────── A Text Formatting Program
  849.  
  850.             ─────────────────────────────────────────────────────────
  851.             PageCols #Columns                    1 <= # <= 255   {80}
  852.             ─────────────────────────────────────────────────────────
  853.               Sets the total number of columns on the page to
  854.               #Columns.  The default value is 80, which works well
  855.               with 8.5 inch paper and 10 character per inch printing.
  856.               #Columns must be greater than the sum of LeftMgn (or the
  857.               larger of OddMgn or EvenMgn if unequal margins are in
  858.               use) and TextLen in order to take effect.  Decrease
  859.               LeftMgn and/or TextLen before reducing PageCols to avoid
  860.               conflict.
  861.  
  862.               Example:
  863.  
  864.                 .. PageCols 132
  865.  
  866.                   Sets the total number of columns on a page to 132.
  867.  
  868.             ─────────────────────────────────────────────────────────
  869.             TopLine #Line                      1 <= # <= 32767    {6}
  870.             ─────────────────────────────────────────────────────────
  871.               #Line is the first line that text of the listing is
  872.               printed on.  TopLine - 1 lines are skipped (or occupied
  873.               by Titles) at the top of each page.  #Lines must not be
  874.               greater than the currently active BotLine to take
  875.               effect.  Increase BotLine before increasing TopLine to
  876.               avoid conflict.  TopLine defaults to 6.
  877.  
  878.               Example:
  879.  
  880.                 ..topline 4
  881.  
  882.                   TopLine is set to 4.  Three lines are skipped or
  883.                   are available for titles at the top of each page.
  884.  
  885.             ─────────────────────────────────────────────────────────
  886.             BotLine #Line                      1 <= # <= 32767   {60}
  887.             ─────────────────────────────────────────────────────────
  888.               #Line is the last line occupied by text on a page.
  889.               BotLine defaults to 60, which leaves 6 lines blank or
  890.               occupied by titles at the end of a 66 line page.  #Line
  891.               must be less than PageLines and not less than TopLine.
  892.               Increase PageLines first to avoid conflict.  If BotLine
  893.               is set to a value above the current line, an immediate
  894.               NewPage will result.
  895.  
  896.               Example:
  897.  
  898.                 ..BotLine 64
  899.  
  900.                   BotLine is set to 64.  Only two lines are skipped
  901.                   at the end of a 66 line page.
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.         Version 3.11                 Page 8             February 22, 1989
  911.  
  912.  
  913.         LISTR ───────────────────────────────── A Text Formatting Program
  914.  
  915.             ─────────────────────────────────────────────────────────
  916.             Title #Line
  917.                   <delim><left><delim><center><delim><right><delim>
  918.             ─────────────────────────────────────────────────────────
  919.               Title defines a string which will be printed on Line
  920.               #Line of every following page.  Titles are explained
  921.               more fully in the TITLES AND MARGIN TEXT section.
  922.  
  923.               Example:
  924.  
  925.               ..title 2 /Left Part/Center Part/Right Part/
  926.  
  927.             ─────────────────────────────────────────────────────────
  928.             MarginTxt <delim><left><delim><right><delim>        {///}
  929.             ─────────────────────────────────────────────────────────
  930.               MarginTxt defines text strings which will print in the
  931.               left or right margin areas.  Typical uses are for change
  932.               bars, line numbers, or for framing pages with graphical
  933.               line characters.  The TITLES AND MARGIN TEXT section
  934.               explains the use of these strings, and the inclusion of
  935.               tokens which expand to line numbers, file names, etc.
  936.  
  937.               Examples:
  938.  
  939.               ..margintxt /| / |/
  940.  
  941.                 Print vertical bars in both left and right margins on
  942.                 following lines.
  943.  
  944.               ..MarginTxt ///
  945.  
  946.                 Stop printing text in the margins.
  947.  
  948.             ─────────────────────────────────────────────────────────
  949.             PageNo #Page                   -32768 <= # <= 32767   {1}
  950.             ─────────────────────────────────────────────────────────
  951.               Sets the current page number to #Page.  PageNo is set to
  952.               1 when LISTR is invoked, and increases by 1 each time a
  953.               new page is started unless changed by the PageNo
  954.               command.  The current page number may also be changed at
  955.               the start of a new file depending on the setting of
  956.               NewFilePg.
  957.  
  958.               PageNo will be shown in Titles and Margins in place of
  959.               the @Pg:  title token.  PageNo will "wrap around" to
  960.               -32768 from 32767.
  961.  
  962.               Example:
  963.  
  964.                 ..PAGENO 100
  965.  
  966.                   Resets the current page number to 100.  If a bottom
  967.                   title includes @Pg:, it will reflect the new value
  968.                   on the current page.  PageNo will increase by 1 from
  969.                   this value each time a page is started.
  970.  
  971.  
  972.  
  973.  
  974.  
  975.         Version 3.11                 Page 9             February 22, 1989
  976.  
  977.  
  978.         LISTR ───────────────────────────────── A Text Formatting Program
  979.  
  980.             ─────────────────────────────────────────────────────────
  981.             LineNo #Line                        0 <= # <= 32767   {1}
  982.             ─────────────────────────────────────────────────────────
  983.               Sets the current line number to #Line.  LineNo is set to
  984.               1 when LISTR is invoked, and increases by 1 each time a
  985.               line is read from the current input file unless changed
  986.               by LineNo.
  987.  
  988.               LineNo may be reset at the start of a new file,
  989.               depending on the setting of NewFileLn.
  990.  
  991.               LineNo will be shown in Titles and Margins in place of
  992.               the @Ln:  title token.  LineNo will "wrap around" to
  993.               -32768 from 32767.
  994.  
  995.               A typical use of LineNo would be to set the starting
  996.               line number on the LISTR command line.  This would be
  997.               useful if a portion of a file is being listed.  The
  998.               numbers shown could be set to match those of the entire
  999.               file.
  1000.  
  1001.               Example:
  1002.  
  1003.                 ..LineNO 275
  1004.  
  1005.                   Resets the current line number to 275.  Each new
  1006.                   line read will increment the count from this value.
  1007.  
  1008.             ─────────────────────────────────────────────────────────
  1009.             LeftMgn #Columns                      0 <= # <= 255   {5}
  1010.             ─────────────────────────────────────────────────────────
  1011.               Sets the number of blank spaces to leave for the left
  1012.               margin.  The sum of LeftMgn and TextLen must not exceed
  1013.               PageCols.  The order of changes to these three
  1014.               parameters must be such that the sum of LeftMgn and
  1015.               TextLen is never greater than PageCols.  LeftMgn
  1016.               defaults to 5.  The LeftMgn setting will be used on all
  1017.               pages (see OddMgn and EvenMgn); it essentially sets both
  1018.               OddMgn and EvenMgn to LeftMgn.
  1019.  
  1020.               Example:
  1021.  
  1022.                 ..LeftMgn 8
  1023.  
  1024.                   Will leave 8 blank spaces on the left of each line
  1025.                   for all lines following the command.  This command
  1026.                   takes effect on the next line printed.
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035.  
  1036.  
  1037.  
  1038.  
  1039.  
  1040.         Version 3.11                 Page 10            February 22, 1989
  1041.  
  1042.  
  1043.         LISTR ───────────────────────────────── A Text Formatting Program
  1044.  
  1045.             ─────────────────────────────────────────────────────────
  1046.             OddMgn #Columns                       0 <= # <= 255   {5}
  1047.             ─────────────────────────────────────────────────────────
  1048.               Sets the number of blank spaces to leave for the left
  1049.               margin on odd numbered pages.  The sum of OddMgn and
  1050.               TextLen must not exceed PageCols.  The order of changes
  1051.               to these three parameters must be such that the sum of
  1052.               OddMgn and TextLen is never greater than PageCols.
  1053.               OddMgn defaults to 5 (also see EvenMgn and LeftMgn).
  1054.  
  1055.               Example:
  1056.  
  1057.                 ..OddMgn 12
  1058.  
  1059.                   Will leave 12 blank spaces on all odd numbered
  1060.                   pages.  The command takes effect on the next line
  1061.                   printed if the current page is an odd numbered page,
  1062.                   or at the top of the next odd numbered page if not.
  1063.  
  1064.             ─────────────────────────────────────────────────────────
  1065.             EvenMgn #Columns                      0 <= # <= 255   {5}
  1066.             ─────────────────────────────────────────────────────────
  1067.               Sets the number of blank spaces to leave for the left
  1068.               margin on odd numbered pages.  The sum of EvenMgn and
  1069.               TextLen must not exceed PageCols.  The order of changes
  1070.               to these three parameters must be such that the sum of
  1071.               EvenMgn and TextLen is always less than PageCols.
  1072.               EvenMgn defaults to 5 (also see OddMgn and LeftMgn).
  1073.  
  1074.               Example:
  1075.  
  1076.                 ..EvenMgn 4
  1077.  
  1078.                   Will leave 4 blank spaces on all even numbered
  1079.                   pages.  The command takes effect at the top of the
  1080.                   next even numbered page, or on the next line printed
  1081.                   if the current page is even numbered.
  1082.  
  1083.             ─────────────────────────────────────────────────────────
  1084.             TextLen #Columns                     1 <= # <= 255   {70}
  1085.             ─────────────────────────────────────────────────────────
  1086.               Sets the maximum number of columns which will be
  1087.               occupied by text in the document.  The sum of LeftMgn
  1088.               (or the larger of OddMgn or EvenMgn if unequal margins
  1089.               are in use) and TextLen must not exceed PageCols.  The
  1090.               order of changes to these parameters must be such that
  1091.               the sum of LeftMgn and TextLen is never greater than
  1092.               PageCols.  TextLen defaults to 70.
  1093.  
  1094.               Example:
  1095.  
  1096.                 ..TextLen 120
  1097.  
  1098.                   There will be 120 printable columns on lines
  1099.                   following this command.
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.         Version 3.11                 Page 11            February 22, 1989
  1106.  
  1107.  
  1108.         LISTR ───────────────────────────────── A Text Formatting Program
  1109.  
  1110.             ─────────────────────────────────────────────────────────
  1111.             TitleMgns ON|OFF                                    {OFF}
  1112.             ─────────────────────────────────────────────────────────
  1113.               Title margins and text length will be the same as the
  1114.               normal text margins and length when TitleMgns is OFF.
  1115.               Turning TitleMgns ON will cause title margins and text
  1116.               length to be controlled by the values set with
  1117.               TitleLeftMgn, TitleOddMgn, TitleEvenMgn and TitleLen.
  1118.  
  1119.               This command allows title margins to be coupled with
  1120.               or uncoupled from normal text margins.
  1121.  
  1122.               Changes to TitleMgns take effect at the top of the next
  1123.               page printed.
  1124.  
  1125.               Any TitleLeftMgn, TitleOddMgn, TitleEvenMgn or TitleLen
  1126.               command includes the effect of TitleMgns ON.
  1127.  
  1128.               Example:
  1129.  
  1130.                 ..TitleMgns on
  1131.  
  1132.                   Any previously defined title margin or length
  1133.                   parameters will take effect at the top of the next
  1134.                   page.
  1135.  
  1136.             ─────────────────────────────────────────────────────────
  1137.             TitleLeftMgn #Columns                 0 <= # <= 255   {5}
  1138.             ─────────────────────────────────────────────────────────
  1139.               Sets the number of blank spaces to leave for the left
  1140.               margin on title lines.  The sum of TitleLeftMgn and
  1141.               TextLen must not exceed PageCols.  The order of changes
  1142.               to these three parameters must be such that the sum of
  1143.               TitleLftMgn and TextLen is never greater than PageCols.
  1144.               TitleLftMgn defaults to 5.
  1145.  
  1146.               The TitleLftMgn setting will be used on all pages (see
  1147.               TitleOddMgn and TitleEvenMgn); it essentially sets both
  1148.               TitleOddMgn and TitleEvenMgn to TitleLftMgn.  Changes to
  1149.               TitleLftMgn do not take effect until the top of the next
  1150.               page.  This command forces TitleMgns ON.
  1151.  
  1152.               Example:
  1153.  
  1154.                 ..TitleLftMgn 2
  1155.  
  1156.                   Will leave 2 blank spaces on the left of each
  1157.                   title line starting at the top of the next page
  1158.                   printed.
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.         Version 3.11                 Page 12            February 22, 1989
  1171.  
  1172.  
  1173.         LISTR ───────────────────────────────── A Text Formatting Program
  1174.  
  1175.             ─────────────────────────────────────────────────────────
  1176.             TitleOddMgn #Columns                  0 <= # <= 255   {5}
  1177.             ─────────────────────────────────────────────────────────
  1178.               Sets the number of blank spaces to leave for the left
  1179.               margin of title lines on odd numbered pages.
  1180.  
  1181.               The sum of TitleOddMgn and TextLen must not exceed
  1182.               PageCols.  The order of changes to these three
  1183.               parameters must be such that the sum of TitleOddMgn and
  1184.               TextLen is never greater than PageCols.  TitleOddMgn
  1185.               defaults to 5.
  1186.  
  1187.               Changes to TitleOddMgn do not take effect until the top
  1188.               of the next odd numbered page.  This command forces
  1189.               TitleMgns ON.
  1190.  
  1191.               Example:
  1192.  
  1193.                 ..TitleOddMgn 6
  1194.  
  1195.                   Will leave 6 blank spaces on the left of each title
  1196.                   line on odd numbered pages starting at the top of
  1197.                   the next odd numbered page printed.
  1198.  
  1199.             ─────────────────────────────────────────────────────────
  1200.             TitleEvenMgn #Columns                 0 <= # <= 255   {5}
  1201.             ─────────────────────────────────────────────────────────
  1202.               Sets the number of blank spaces to leave for the left
  1203.               margin of title lines on even numbered pages.  The sum
  1204.               of TitleEvenMgn and TextLen must not exceed PageCols.
  1205.               The order of changes to these three parameters must be
  1206.               such that the sum of TitleEvenMgn and TextLen is never
  1207.               greater than PageCols.  TitleEvenMgn defaults to 5.
  1208.  
  1209.               Changes to TitleEvenMgn do not take effect until the top
  1210.               of the next even numbered page.  This command forces
  1211.               TitleMgns ON.
  1212.  
  1213.               Example:
  1214.  
  1215.                 ..TitleEvenMgn 3
  1216.  
  1217.                   Will leave 3 blank spaces on the left of each title
  1218.                   line on even numbered pages starting at the top of
  1219.                   the next even numbered page printed.
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.         Version 3.11                 Page 13            February 22, 1989
  1236.  
  1237.  
  1238.         LISTR ───────────────────────────────── A Text Formatting Program
  1239.  
  1240.             ─────────────────────────────────────────────────────────
  1241.             TitleLen #Columns                    1 <= # <= 255   {70}
  1242.             ─────────────────────────────────────────────────────────
  1243.               Sets the maximum number of columns which will be
  1244.               occupied by text on title lines.  The sum of the left
  1245.               title margin in effect and TitleLen must not exceed
  1246.               PageCols.
  1247.  
  1248.               The left title margin in effect is the larger of
  1249.               TitleLeftMgn, TitleOddMgn or TitleEvenMgn if TitleMgns
  1250.               are ON, and larger of LeftMgn, OddMgn or EvenMgn if
  1251.               TitleMgns are OFF.  The order of changes to these
  1252.               parameters must be such that the sum of the effective
  1253.               TitleLeftMgn and TitleLen is never greater than
  1254.               PageCols.
  1255.  
  1256.               Changes to TitleLen take effect at the top of the next
  1257.               page.  This command forces TitleMgns ON.  TitleLen
  1258.               defaults to 70.
  1259.  
  1260.               Example:
  1261.  
  1262.                 ..TitleLen 78
  1263.  
  1264.                   There will be 78 printable columns on title lines
  1265.                   starting at the top of the next page.
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300.         Version 3.11                 Page 14            February 22, 1989
  1301.  
  1302.  
  1303.         LISTR ───────────────────────────────── A Text Formatting Program
  1304.  
  1305.             ─────────────────────────────────────────────────────────
  1306.             Wrap ON|OFF                                          {ON}
  1307.             ─────────────────────────────────────────────────────────
  1308.               Turns wrap mode ON or OFF.  If wrap mode is ON, any line
  1309.               longer than TextLen will wrap around to the next line.
  1310.               The line will break at the right-most break character
  1311.               (see SetBreak) if there is a break character on the
  1312.               line and Break is ON.  If not, the line will break after
  1313.               TextLen columns.  The wrapped line will be indented (or
  1314.               out-dented) according to the setting of WrapIndent if
  1315.               Wrap Mode is on.  The indent is relative to the first
  1316.               non-blank character on the wrapping line if AutoIndent
  1317.               is ON, and relative to the left margin if not.  If wrap
  1318.               mode is OFF, a line longer than TextLen will be
  1319.               truncated to TextLen characters.  The end of the wrapped
  1320.               line and beginning of the wrapping portion may be marked
  1321.               (see WrapMark).  Wrap mode defaults to ON.
  1322.  
  1323.               Example:
  1324.  
  1325.                 ..WRAP ON
  1326.  
  1327.                   Lines following this command will wrap to the next
  1328.                   line if the line has more than TextLen characters.
  1329.  
  1330.                   If TextLen is 20 and WrapIndent is 0, the following
  1331.                   line:
  1332.  
  1333.                   ....:....|....:....|....:....|....:....|....:....|..
  1334.                   This is a test line that will wrap.
  1335.  
  1336.                   will list as:
  1337.  
  1338.                   ....:....|....:....|....:....|....:....|
  1339.                   This is a test line
  1340.                   that will wrap.
  1341.  
  1342.                 .. Wrap OFF
  1343.  
  1344.                   The same source line will list as:
  1345.  
  1346.                   ....:....|....:....|....:....|....:....|
  1347.                   This is a test line
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353.  
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.         Version 3.11                 Page 15            February 22, 1989
  1366.  
  1367.  
  1368.         LISTR ───────────────────────────────── A Text Formatting Program
  1369.  
  1370.             ─────────────────────────────────────────────────────────
  1371.             WrapIndent #Spaces                 -255 <= # <= 255   {2}
  1372.             ─────────────────────────────────────────────────────────
  1373.               Sets the number of spaces to indent the wrapped portion
  1374.               of a line relative to the first non-blank character in
  1375.               the original line if AutoIndent is ON, or relative to
  1376.               the left margin if AutoIndent is OFF.  #Spaces can be
  1377.               positive or negative, effectively indenting or
  1378.               out-denting the wrapped text.  Text will not out-dent
  1379.               into the left margin nor will it indent past TextLen -
  1380.               1, regardless of the setting of WrapIndent.  WrapIndent
  1381.               is set to 2 by default.
  1382.  
  1383.               Example:
  1384.  
  1385.                 .. WrapIndent 4
  1386.  
  1387.                   Lines longer than TextLen after this command will
  1388.                   have the wrapped portion indented 4 spaces relative
  1389.                   to the original line or the left margin.  If more
  1390.                   than one wrap is required, all wrapped segments are
  1391.                   indented 4 spaces relative to the original line.
  1392.  
  1393.                   With TextLen set to 22 and AutoIndent ON, the
  1394.                   following source line:
  1395.  
  1396.                   ....:....|....:....|....:....|....:....|....:....|..
  1397.                     This is a test line which will wrap more than once
  1398.  
  1399.                   will list as:
  1400.  
  1401.                   ....:....|....:....|....:....|....:....|
  1402.                     This is a test line
  1403.                         which will wrap
  1404.                         more than once
  1405.  
  1406.                   The indent is relative to the 'T' in 'This'.  The
  1407.                   same line with AutoIndent OFF will list as:
  1408.  
  1409.                   ....:....|....:....|....:....|....:....|
  1410.                     This is a test line
  1411.                       which will wrap
  1412.                       more than once
  1413.  
  1414.                   Here, the indent is relative to the left margin.
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.         Version 3.11                 Page 16            February 22, 1989
  1431.  
  1432.  
  1433.         LISTR ───────────────────────────────── A Text Formatting Program
  1434.  
  1435.             ─────────────────────────────────────────────────────────
  1436.             WrapMark <delim><stg><delim><stg><delim>            {///}
  1437.             ─────────────────────────────────────────────────────────
  1438.               Defines a marker to place at the end of wrapped text,
  1439.               and another to place at the beginning of the wrapped
  1440.               portion if Wrap is ON.  The first character of the
  1441.               parameter is the delimiter which will identify the
  1442.               remaining portions of the markers.  The total length of
  1443.               the two portions of WrapMark must be less than TextLen
  1444.               or an error will result.  The default is no WrapMark.
  1445.  
  1446.               Text will wrap or truncate so that the markers will fit
  1447.               within the margins.
  1448.  
  1449.               Examples:
  1450.  
  1451.                 ..WrapMark /|/+/
  1452.  
  1453.                   With Break ON, Wrap ON, TextLen = 20 and WrapIndent
  1454.                   = 2, the following line:
  1455.  
  1456.                   ....:....|....:....|....:....|....:....|
  1457.                   This is a basic test.
  1458.  
  1459.                   will list as:
  1460.  
  1461.                   ....:....|....:....|....:....|....:....|
  1462.                   This is a basic |
  1463.                     +test.
  1464.  
  1465.                   If Break were OFF, the result would be:
  1466.  
  1467.                   ....:....|....:....|....:....|....:....|
  1468.                   This is a basic tes|
  1469.                     +t.
  1470.  
  1471.                   If Wrap were OFF, the result would be:
  1472.  
  1473.                   ....:....|....:....|....:....|....:....|
  1474.                   This is a basic tes|
  1475.  
  1476.  
  1477.  
  1478.  
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.         Version 3.11                 Page 17            February 22, 1989
  1496.  
  1497.  
  1498.         LISTR ───────────────────────────────── A Text Formatting Program
  1499.  
  1500.             ─────────────────────────────────────────────────────────
  1501.             AutoIndent ON|OFF                                    {ON}
  1502.             ─────────────────────────────────────────────────────────
  1503.               AutoIndent ON will cause the wrapped portion of a line
  1504.               to indent by WrapIndent spaces relative to the first
  1505.               non-blank character on the original line.  AutoIndent
  1506.               OFF causes the wrapped portion to indent WrapIndent
  1507.               spaces from the left margin.  AutoIndent defaults to ON.
  1508.               AutoIndent has no effect if Wrap if OFF.
  1509.  
  1510.               Examples:
  1511.  
  1512.               The following examples assume TextLen = 20, Wrap is ON,
  1513.               WrapIndent is 2, and Break is OFF.  It is also assumed
  1514.               that ..AutoIndent starts in column 1, so the text lines
  1515.               start in column 4.
  1516.  
  1517.                 ..AutoIndent ON
  1518.  
  1519.                   will cause the following source line:
  1520.  
  1521.                   ....:....|....:....|....:....|....:....|
  1522.                        Testing AutoIndent now.
  1523.  
  1524.                   to list as:
  1525.  
  1526.                   ....:....|....:....|....:....|....:....|
  1527.                        Testing AutoInd
  1528.                          ent now.
  1529.  
  1530.                   The indent of 2 spaces is relative to the start of
  1531.                   text, and indents from the 'T' in column 6.
  1532.  
  1533.                 ..AutoIndent OFF
  1534.  
  1535.                   would cause the same source line to list as:
  1536.  
  1537.                   ....:....|....:....|....:....|....:....|
  1538.                        Testing AutoInd
  1539.                     ent now.
  1540.  
  1541.                   The indent of 2 spaces is relative to the left
  1542.                   margin with AutoIndent OFF.
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.         Version 3.11                 Page 18            February 22, 1989
  1561.  
  1562.  
  1563.         LISTR ───────────────────────────────── A Text Formatting Program
  1564.  
  1565.             ─────────────────────────────────────────────────────────
  1566.             Break ON|OFF                                         {ON}
  1567.             ─────────────────────────────────────────────────────────
  1568.               When Break is ON, lines will wrap after the rightmost
  1569.               character in the Break Character list.  With Break OFF,
  1570.               lines wrap at the right margin, even in the middle of a
  1571.               word.  Break defaults to ON.
  1572.  
  1573.               Example:
  1574.  
  1575.                 ..break off
  1576.  
  1577.                   With Break OFF, Wrap ON, WrapIndent = 2 and TextLen
  1578.                   set to 20, the following input line:
  1579.  
  1580.                   ....:....|....:....|....:....|
  1581.                   This is a test of break.
  1582.  
  1583.                   will list as:
  1584.  
  1585.                   ....:....|....:....|....:....|
  1586.                   This is a test of br
  1587.                     eak.
  1588.  
  1589.                 .. break ON
  1590.  
  1591.                   If Break Characters = ' ', the line would list as:
  1592.  
  1593.                   ....:....|....:....|....:....|
  1594.                   This is a test of
  1595.                     break.
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.         Version 3.11                 Page 19            February 22, 1989
  1626.  
  1627.  
  1628.         LISTR ───────────────────────────────── A Text Formatting Program
  1629.  
  1630.             ─────────────────────────────────────────────────────────
  1631.             SetBreak '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  1632.                             ['<stg>'|<cde>|$<hex> [...]]      {9 ' '}
  1633.             ─────────────────────────────────────────────────────────
  1634.               Sets the list of Break Characters to the character
  1635.               constant(s) specified.  Text will wrap on one of these
  1636.               characters if Wrap is ON and Break is ON.  The default
  1637.               Break Characters are tab (ASCII 9) and space.  Each
  1638.               SetBreak command clears Break Characters and sets the
  1639.               new values.  The effect of previous SetBreak statements
  1640.               is lost.
  1641.               SetBreak turns Break ON.  The Break ON|OFF command may
  1642.               be used to turn break on and off without changing the
  1643.               break characters.
  1644.  
  1645.               Examples:
  1646.  
  1647.                 ..SetBreak ' */+-'
  1648.  
  1649.                   Will cause a line to break after a the rightmost
  1650.                   space or '*', '+', '-', or '/'.  This might be
  1651.                   useful if listing a program with mathematical
  1652.                   expressions which do not have many spaces.  The
  1653.                   following line:
  1654.  
  1655.                   ....:....|....:....|....:....|
  1656.                   x=(a+b+c)*(d+e+f)/(h+i+j)
  1657.  
  1658.                   would list as:
  1659.  
  1660.                   ....:....|....:....|....:....|
  1661.                   x=(a+b+c)*
  1662.                     (d+e+f)/
  1663.                     (h+i+j)
  1664.  
  1665.                   if TextLen is 12 and Break is on.  Note that the
  1666.                   Break Character remains on the original line.
  1667.  
  1668.                 ..SetBreak 9 ' '
  1669.  
  1670.                   Will break on a space or a tab (ASCII 9) character.
  1671.                   This is the default setting for Break Characters.
  1672.  
  1673.             ─────────────────────────────────────────────────────────
  1674.             Tabs ON|OFF                                          {ON}
  1675.             ─────────────────────────────────────────────────────────
  1676.               Turning TABS on will cause any TAB (control-I, ASCII 9)
  1677.               characters in the following text to be expanded to the
  1678.               next tab stop set by the SetTabs command.  With TABS
  1679.               off, tab characters will not be expanded.  The
  1680.               default state of Tabs is ON.
  1681.  
  1682.               Example:
  1683.  
  1684.                 ..tabs on
  1685.  
  1686.                   All TAB characters in following text will be
  1687.                   expanded to the next tab stop.
  1688.  
  1689.  
  1690.         Version 3.11                 Page 20            February 22, 1989
  1691.  
  1692.  
  1693.         LISTR ───────────────────────────────── A Text Formatting Program
  1694.  
  1695.             ─────────────────────────────────────────────────────────
  1696.             SetTabs ALL | (#Column [#Column [#Column [ ... ]]])
  1697.                                 {9, 17, 25 ... increment by 8 to 249}
  1698.             ─────────────────────────────────────────────────────────
  1699.               Sets tab stops in the columns specified.  The parameter
  1700.               ALL may be used instead of a column number list to set
  1701.               tabs in every column.  The ALL specification is more
  1702.               useful for ClearTabs than for SetTabs.  The default tab
  1703.               settings are 9, 17, 25 .. 153 (every 8 columns).
  1704.  
  1705.               Example:
  1706.  
  1707.                 ..SETTABS 5 10 15 20
  1708.  
  1709.                   Sets tab stops in columns 5, 10, 15 and 20.  Any
  1710.                   previously defined tabs remain set.
  1711.  
  1712.             ─────────────────────────────────────────────────────────
  1713.             ClearTabs ALL | (#Column [#Column [#Column [ ... ]]])
  1714.             ─────────────────────────────────────────────────────────
  1715.               Clears specified tab stops.  The ALL specification may
  1716.               be used to clear all stops.
  1717.  
  1718.               Examples:
  1719.  
  1720.                 ..ClearTabs All
  1721.  
  1722.                   Clears all previously set tab stops.
  1723.  
  1724.                 ..CLEARTABS 5 10
  1725.  
  1726.                   Clears tab stops from columns 5 and 10.  Any other
  1727.                   tabs which were set remain set.
  1728.  
  1729.             ─────────────────────────────────────────────────────────
  1730.             Xlate ON|OFF                                        {OFF}
  1731.             ─────────────────────────────────────────────────────────
  1732.               Xlate ON enables a character by character translation,
  1733.               with new characters taken from the Translate Table (see
  1734.               SetXlate).  The default for Xlate is OFF, and the
  1735.               default Translate Table maps all characters to their
  1736.               original code.  Xlate is turned ON when any translation
  1737.               pair is defined by SetXlate, and OFF by SetXlate CLR.
  1738.  
  1739.               If it is necessary to translate characters in only a
  1740.               portion of a file, Xlate may be turned OFF for the other
  1741.               parts of the file.  Some time will be saved by leaving
  1742.               Xlate OFF when not required.
  1743.  
  1744.               Example:
  1745.  
  1746.                 ..xlate ON
  1747.  
  1748.                   Following text will be translated according to the
  1749.                   values set in the Translate Table.
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.         Version 3.11                 Page 21            February 22, 1989
  1756.  
  1757.  
  1758.         LISTR ───────────────────────────────── A Text Formatting Program
  1759.  
  1760.             ─────────────────────────────────────────────────────────
  1761.             SetXlate CLR | ('<chr>'|<cde>|$<hex>:'<chr>'|<cde>|$<hex>
  1762.              ['<chr>'|<cde>|$<hex>:'<chr>'|<cde>|$<hex> [...]]) {CLR}
  1763.             ─────────────────────────────────────────────────────────
  1764.               SetXlate sets character mapping data in the Translate
  1765.               Table.  The parameter string consists of character
  1766.               constant pairs, the first of which defines a character
  1767.               to be translated, and the second the new value.  The
  1768.               keyword CLR may be used instead of a parameter string to
  1769.               clear the Translate Table for a one to one mapping of
  1770.               all characters.  The CLR state is the default state of
  1771.               the Translate Table.  Each SetXlate adds characters to
  1772.               the Translate Table.  The effect is cumulative until a
  1773.               SetXlate CLR resets the table.
  1774.  
  1775.               SetXlate turns translation ON when a translation pair is
  1776.               defined, and OFF when set to CLR.  The Xlate ON|OFF
  1777.               command may be used to turn translation on and off
  1778.               without changing the translation table.
  1779.  
  1780.               Translation takes place after tabs are expanded, and
  1781.               after commands are interpreted.  Un-translated text will
  1782.               be scanned to form the command and any parameters.  If
  1783.               commands are being printed (PrintCmd ON and/or PrintAlt
  1784.               ON), command text will be translated before being
  1785.               printed.
  1786.  
  1787.               Examples:
  1788.  
  1789.                 ..SetXlate 192:'+' 217:'+' 218:'+' 191:'+' 179:'|'
  1790.                 ..SetXlate 196:'-'
  1791.  
  1792.                   The decimal codes here are for the line drawing
  1793.                   symbols.  They are being re-mapped to symbols which
  1794.                   will print on non-IBM character set printers.  If
  1795.                   the source:
  1796.  
  1797.                   ┌───┐
  1798.                   │   │
  1799.                   └───┘
  1800.  
  1801.                   is listed with Xlate ON the result is:
  1802.  
  1803.                   +---+
  1804.                   |   |
  1805.                   +---+
  1806.  
  1807.                 ..SetXlate Clr
  1808.  
  1809.                   Restores the Translate Table to map all characters
  1810.                   to their normal code (i.e., no translation).  This
  1811.                   may be used to reset before a new translation is
  1812.                   loaded.
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.         Version 3.11                 Page 22            February 22, 1989
  1821.  
  1822.  
  1823.         LISTR ───────────────────────────────── A Text Formatting Program
  1824.  
  1825.             ─────────────────────────────────────────────────────────
  1826.             NewPage
  1827.             ─────────────────────────────────────────────────────────
  1828.               NewPage will cause the current page to be ended, and
  1829.               printing will resume on a new page.
  1830.  
  1831.               Example:
  1832.  
  1833.                 ..NewPage
  1834.  
  1835.             ─────────────────────────────────────────────────────────
  1836.             CondPg #Lines                        1 <= # <= 32767
  1837.             ─────────────────────────────────────────────────────────
  1838.               Will end the current page if fewer than #Lines remain.
  1839.               This command can be used to keep a block of text from
  1840.               being split on two pages.
  1841.  
  1842.               Example:
  1843.  
  1844.                 ..CondPage 21
  1845.  
  1846.                   Will skip to a new page if fewer than 21 lines
  1847.                   remain on the current page.
  1848.  
  1849.             ─────────────────────────────────────────────────────────
  1850.             KeepTo
  1851.             ─────────────────────────────────────────────────────────
  1852.               KeepTo and EndKeep bound a block of text which will not
  1853.               be printed on the current page unless the entire block
  1854.               will fit on the lines remaining.  If the block is too
  1855.               long to fit, the current page is ended.  Execution of
  1856.               any LISTR commands between the KeepTo and EndKeep is
  1857.               deferred until the block is actually printed.
  1858.  
  1859.               Include commands are not allowed within a KeepTo /
  1860.               EndKeep block.  If an Include is encountered, an error
  1861.               message is printed and the keep block is ended before
  1862.               the new file is included.
  1863.  
  1864.               If a second KeepTo or the end of the current file is
  1865.               encountered after KeepTo and before the next EndKeep,
  1866.               an error also results and the keep is ended.
  1867.  
  1868.               Example:
  1869.  
  1870.                 ..KeepTo
  1871.                 Text Line 1 of block to be kept together
  1872.                 Text Line 2
  1873.                 Text Line 3
  1874.                 ..EndKeep
  1875.  
  1876.                   The block of 3 lines will be printed on the current
  1877.                   page if the text will all fit (if the text has any
  1878.                   lines that wrap, the added lines must also fit).  If
  1879.                   not, a new page will be started.
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.         Version 3.11                 Page 23            February 22, 1989
  1886.  
  1887.  
  1888.         LISTR ───────────────────────────────── A Text Formatting Program
  1889.  
  1890.             ─────────────────────────────────────────────────────────
  1891.             EndKeep
  1892.             ─────────────────────────────────────────────────────────
  1893.               Ends a block to be kept together on a page.  See KeepTo
  1894.               above.
  1895.  
  1896.             ─────────────────────────────────────────────────────────
  1897.             Include <file spec>
  1898.             ─────────────────────────────────────────────────────────
  1899.               Include will suspend printing of the current file and
  1900.               begin listing files matching <file spec>.  Drive, path
  1901.               and wild card specifiers are allowed in <file spec>.
  1902.               Includes may be nested to a depth limited by available
  1903.               memory, and by the maximum number of files DOS can have
  1904.               open at one time.  That number can be increased by
  1905.               putting a statement such as FILES=20 in the CONFIG.SYS
  1906.               file that DOS reads during the boot process.
  1907.  
  1908.               Examples:
  1909.  
  1910.                 ..Include c:\mydir\test.txt
  1911.  
  1912.                   The file currently being listed will be interrupted,
  1913.                   and c:\mydir\test.txt will be listed.  The
  1914.                   interrupted listing will resume at the end of the
  1915.                   included file.  If NewFilePg is ON, the listing will
  1916.                   start on a new page.
  1917.  
  1918.                 .. Include *.txt
  1919.  
  1920.                   Files matching *.txt will be included in the
  1921.                   listing.  The order will be determined by the order
  1922.                   of the files in the DOS directory.  Since no drive
  1923.                   or path is specified, the drive and path of the file
  1924.                   containing the Include will be used.
  1925.  
  1926.                 ..include c:*.txt
  1927.  
  1928.                   This example specifies a drive, but no path.  If the
  1929.                   drive is the same as that of the file containing the
  1930.                   Include, the drive and path of that file will be
  1931.                   used.  If the drive is not the same as the parent
  1932.                   file, the path in effect on the specified drive when
  1933.                   LISTR started will be used.
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.         Version 3.11                 Page 24            February 22, 1989
  1951.  
  1952.  
  1953.         LISTR ───────────────────────────────── A Text Formatting Program
  1954.  
  1955.             ─────────────────────────────────────────────────────────
  1956.             NewFilePg ON|OFF|#Page    -32768 <= # <= 32767   {OFF, 1}
  1957.             ─────────────────────────────────────────────────────────
  1958.               When NewFilePg is ON, each included file will start on
  1959.               a new page.  With NewFilePg OFF, included files will
  1960.               start listing on the next available line.
  1961.  
  1962.               If #Page is specified and is greater than zero NewFilePg
  1963.               is turned on and the first page of each include file
  1964.               will be numbered #Page.  Specifying zero as #Page will
  1965.               turn NewFilePg OFF.  If NewFilePg is turned OFF and ON
  1966.               with the OFF and ON parameters, a non-zero value of
  1967.               #Page specified previously will be in effect whenever
  1968.               NewFilePg is ON.
  1969.  
  1970.               NewFilePg defaults to OFF, and #Page to 1.
  1971.  
  1972.               Examples:
  1973.  
  1974.                 ..NEWFILEPG ON
  1975.  
  1976.                   Include files will start on a new page after this
  1977.                   command is encountered.
  1978.  
  1979.                 ..NewFilePg 1
  1980.  
  1981.                   Include files will start on a new page, and the page
  1982.                   numbering will start at 1.
  1983.  
  1984.             ─────────────────────────────────────────────────────────
  1985.             NewFileLn ON|OFF|#Line      -32768 <= # <= 32767  {ON, 1}
  1986.             ─────────────────────────────────────────────────────────
  1987.               When NewFileLn is ON, the line number of each new file
  1988.               will start with #Line.  With NewFileLn OFF, the line
  1989.               numbers will continue to count up through all files
  1990.               listed.
  1991.  
  1992.               If #Line is specified and is greater than zero NewFileLn
  1993.               is turned on and the first line of each include file
  1994.               will be numbered #Line.  Specifying zero as #Line will
  1995.               turn NewFileLn OFF.  If NewFileLn is turned OFF and ON
  1996.               with the OFF and ON parameters, a non-zero value of
  1997.               #Page specified previously will be in effect whenever
  1998.               NewFileLn is ON.
  1999.  
  2000.               NewFileLn defaults to ON with #Line set to 1.
  2001.  
  2002.               Examples:
  2003.  
  2004.                 ..NEWFILELN ON
  2005.  
  2006.                   New file line numbers will start with #Line after
  2007.                   this command is encountered.
  2008.  
  2009.                 ..NewFileLn 1
  2010.  
  2011.                   New file line numbers will start with 1.
  2012.  
  2013.  
  2014.  
  2015.         Version 3.11                 Page 25            February 22, 1989
  2016.  
  2017.  
  2018.         LISTR ───────────────────────────────── A Text Formatting Program
  2019.  
  2020.         Printer Control Commands
  2021.         ────────────────────────
  2022.         Commands in this group concern printer control codes and
  2023.         sequences.
  2024.  
  2025.             ─────────────────────────────────────────────────────────
  2026.             Eject ON|OFF                                         {ON}
  2027.             ─────────────────────────────────────────────────────────
  2028.               Determines whether to eject the last page of a listing.
  2029.               If Eject is ON, a form feed (or series of line feeds if
  2030.               FormFeed is OFF) will be issued after the last line of
  2031.               the listing.  If Eject is OFF, the form or line feeds
  2032.               are suppressed.
  2033.  
  2034.               Some printers require the page eject, while some print
  2035.               utilities (such as DOS's PRINT print spooler)
  2036.               automatically add a page eject.  Eject allows the output
  2037.               to be adjusted for the intended environment.
  2038.  
  2039.               Example:
  2040.  
  2041.                 .. Eject OFF
  2042.  
  2043.             ─────────────────────────────────────────────────────────
  2044.             FormFeed ON|OFF                                      {ON}
  2045.             ─────────────────────────────────────────────────────────
  2046.               Determines whether a form feed character is issued to
  2047.               end a page.  If FormFeed is OFF, line feeds are used to
  2048.               end the page.  If FormFeed in ON, a form feed character
  2049.               (see FormFeedChar below) will be issued if the end of
  2050.               text for a page is encountered and no text has been
  2051.               printed on the last line of the page.  If the last line
  2052.               has been printed, a form feed would cause an empty page
  2053.               to be ejected.  The default is ON.
  2054.  
  2055.               Example:
  2056.  
  2057.                 .. formfeed OFF
  2058.  
  2059.             ─────────────────────────────────────────────────────────
  2060.             FormFeedChar  '<chr>'|<cde>|$<hex>                   {12}
  2061.             ─────────────────────────────────────────────────────────
  2062.               Allows the form feed character to be defined.  The
  2063.               normal form feed character is control L (ASCII 012),
  2064.               and that is the default for FormFeedChar.  The
  2065.               character may be specified as a quoted character (i.e.
  2066.               'a'), a decimal ASCII code (i.e., 12) or a hexadecimal
  2067.               ASCII code preceded by a $ (i.e., $F).
  2068.  
  2069.               Examples:
  2070.  
  2071.                 ..FormFeedChar 10
  2072.  
  2073.                   Defines FormFeedChar to be chr(10), or control J.
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.  
  2080.         Version 3.11                 Page 26            February 22, 1989
  2081.  
  2082.  
  2083.         LISTR ───────────────────────────────── A Text Formatting Program
  2084.  
  2085.             ─────────────────────────────────────────────────────────
  2086.             SetupFile <file name>
  2087.             ─────────────────────────────────────────────────────────
  2088.               This command allows a complex set of control codes to be
  2089.               passed to a printer.  These codes might be used to load
  2090.               a user defined font or to select printer configurations.
  2091.               The file is a standard ASCII text file, and must consist
  2092.               of a list of codes in the form of quoted characters,
  2093.               decimal values, or hexadecimal values.  The values must
  2094.               be in the range of 0 to 255 ($00 to $FF).  Text
  2095.               including and following '*' or '/', and not within a
  2096.               quoted string, will be ignored as a comment.  A line
  2097.               starting with '-' indicates end of data and terminates
  2098.               the input.  An example of a setup file is:
  2099.  
  2100.  
  2101.                 /* This is a sample Printer Setup File
  2102.                 /*
  2103.                 'abcdef' 010 011 $ff $A0 /* String, decimal and hex
  2104.                 12 244 249 $32
  2105.                 /*
  2106.                 /* This file would pass a total of 14 characters
  2107.                 /* starting with 'a' and ending with hexadecimal
  2108.                 /* code $32 to the printer (or output file).
  2109.                 - End of Data
  2110.                 This line will be ignored.
  2111.  
  2112.               Example:
  2113.  
  2114.                 ..SetupFile c:\mydir\print.set
  2115.  
  2116.                   Interprets and prints characters from the file
  2117.                   c:\mydir\print.set.  The '*' and '?' wildcards are
  2118.                   not allowed in a setup file name.
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.         Version 3.11                 Page 27            February 22, 1989
  2146.  
  2147.  
  2148.         LISTR ───────────────────────────────── A Text Formatting Program
  2149.  
  2150.             ─────────────────────────────────────────────────────────
  2151.             SetupStrg '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  2152.                          ['<stg>'|<cde>|$<hex> [ ... ]]]
  2153.             ─────────────────────────────────────────────────────────
  2154.               Interprets the specified string and passes the character
  2155.               codes to the output file or printer.  This is intended
  2156.               to pass short control or setup strings to a printer.
  2157.               Text starting with '/' or '*', and not part of a quoted
  2158.               string, is ignored as a comment.
  2159.  
  2160.  
  2161.               Examples:
  2162.  
  2163.                 .. setupstrg 015
  2164.  
  2165.                   Sends a single control character (chr(15) or control
  2166.                   O) to the printer.  This would select compressed
  2167.                   printing mode on an Epson compatible printer.
  2168.  
  2169.                 ..SETUPSTRG 27 '&' 0 32 33   /* Decimal Values
  2170.                 .. setupstrg $1A '&' 0 ' !'  /* Equivalent Characters
  2171.  
  2172.                   These are equivalent setup strings, and Send five
  2173.                   setup or control characters to the output.  The
  2174.                   characters would be ASCII 27 (Escape), '&', and
  2175.                   ASCII 32 and 33, ' !'.
  2176.  
  2177.         TITLES AND MARGIN TEXT
  2178.         ──────────────────────
  2179.         LISTR has the ability to print titles in the top and bottom
  2180.         margins and to include text in the left and right margins.
  2181.         Title and margin text may include a number of special strings
  2182.         such as page number, file names, file creation dates and
  2183.         times, and file line numbers.
  2184.  
  2185.         Titles
  2186.  
  2187.         Each title has three substrings:  Left, Center and Right.  The
  2188.         general form for the title command is:
  2189.  
  2190.             Title #Line /<left title>/<center title>/<right title>/
  2191.  
  2192.         The title substrings are separated by the surrounding
  2193.         delimiters (/ in the example).  The delimiter may be any
  2194.         character that is not included in the title.  The first
  2195.         character of the title string is used as the delimiter.
  2196.  
  2197.         The #Line is the line which the title will occupy on the
  2198.         listing.  Titles may be defined for any line on the page, but
  2199.         will only print when #Line is in the top or bottom margin.
  2200.         Thus, a title defined for Line 6 will only be printed when the
  2201.         setting for TopLine is 7 or greater (or when BotLine is less
  2202.         than 6).  The title remains defined if TopLine is less than
  2203.         7, and will re-appear if TopLine is later set to 7 or more.
  2204.  
  2205.         When the title is expanded, the center portion is placed in
  2206.         the center of the text portion (TextLen characters) of the
  2207.         line first.  The Left and Right portions are then overlaid on
  2208.         the left and right ends.  Leading or trailing spaces may be
  2209.  
  2210.         Version 3.11                 Page 28            February 22, 1989
  2211.  
  2212.  
  2213.         LISTR ───────────────────────────────── A Text Formatting Program
  2214.  
  2215.         used as part of the Center title to offset the center part
  2216.         when the left and right titles are of different lengths.  The
  2217.         following example illustrates this:
  2218.  
  2219.            Source file:
  2220.  
  2221.                 .. PageLines 20
  2222.                 .. textLen 30
  2223.                 ..title 1 $Left$Center$Right$
  2224.                 ..title 2 /Long Left Title/Center/Right/
  2225.                 ..title 3 /Long Left Title/         Center/Right/
  2226.  
  2227.            Resultant listing:
  2228.  
  2229.                 Left        Center       Right
  2230.                 Long Left Titleter       Right
  2231.                 Long Left Title  Center  Right
  2232.  
  2233.         In this example, the left portion of the title on line 2
  2234.         overwrites the center.  The title for line 3 uses leading
  2235.         spaces in the center string to prevent the problem.
  2236.  
  2237.         Margin Text
  2238.  
  2239.         Margin text is specified by two substrings: Left and Right.
  2240.         The general form for the margin text command is:
  2241.  
  2242.             MarginTxt  /<left margin text>/<right margin text>/
  2243.  
  2244.         As in the case of titles, the substrings are separated by
  2245.         delimiters (/ in the example).  The delimiter may be any
  2246.         character that is not included in the title.  The first
  2247.         character of the title string is used as the delimiter.
  2248.  
  2249.         When margin text is expanded, the left portion is right
  2250.         justified in the left margin and the right portion is left
  2251.         justified in the right margin.  If the left string is longer
  2252.         than the active left margin, the excess characters are
  2253.         truncated from the left of the string.  The right string will
  2254.         start at the end of the text (set by TextLen) and will be
  2255.         truncated if it would exceed PageCols.  The following example
  2256.         illustrates the expansion of margin text:
  2257.  
  2258.         Source file:
  2259.  
  2260.              ..TextLen 31
  2261.              ..PageCols 51
  2262.              ..LeftMgn 10
  2263.              ..MarginTxt /Left->/<-Right/
  2264.              This line is 31 characters long
  2265.              ..LeftMgn 5
  2266.              ..PageCols 41
  2267.              ..MarginTxt /Left->/<-Right/
  2268.              This line is 31 characters long
  2269.  
  2270.  
  2271.  
  2272.  
  2273.  
  2274.  
  2275.         Version 3.11                 Page 29            February 22, 1989
  2276.  
  2277.  
  2278.         LISTR ───────────────────────────────── A Text Formatting Program
  2279.  
  2280.         Resultant Listing:
  2281.  
  2282.              ....:....|....:....|....:....|....:....|....:....|..
  2283.                  Left->This line is 31 characters long<-Right
  2284.              eft->This line is 31 characters long<-Rig
  2285.  
  2286.         The first line shows both the left and right portions without
  2287.         truncation, since both strings fit within the 10 character
  2288.         space available (LeftMgn is 10, and PageCols - TextLen -
  2289.         LeftMgn is 10).  In the second line, both margins have been
  2290.         reduced to 5 characters, and the margin text is truncated.
  2291.  
  2292.         Margin Text on Skipped Lines
  2293.  
  2294.         When a page break is forced (i.e., by NewPage or KeepTo) LISTR
  2295.         will skip a number of lines to reach the end of the page.
  2296.         Margin text will be printed on these lines if there are any
  2297.         bottom titles defined.  Printing margin text in this case
  2298.         allows enclosing boxes to be created (see Enclosing Test in
  2299.         Boxes and Forms below).
  2300.  
  2301.         Margin text will not print on skipped lines if there are no
  2302.         bottom titles defined.  A bottom title may be "undefined" by
  2303.         specifying a blank (without delimiters) title such as:
  2304.  
  2305.                           ..Title 63
  2306.  
  2307.         Similarly, if margin text is desired on skipped lines but no
  2308.         bottom titles are needed, a title with only spaces may be used
  2309.         to "define" a bottom title:
  2310.  
  2311.                           ..Title 63  / ///
  2312.  
  2313.         Special Print Tokens
  2314.  
  2315.         Various parameters, such as file names, file creation dates,
  2316.         and current time or date may be included in titles and margin
  2317.         text.  These parameters are requested by including one or more
  2318.         of the tokens listed below:
  2319.  
  2320.  
  2321.  
  2322.  
  2323.  
  2324.  
  2325.  
  2326.  
  2327.  
  2328.  
  2329.  
  2330.  
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.         Version 3.11                 Page 30            February 22, 1989
  2341.  
  2342.  
  2343.         LISTR ───────────────────────────────── A Text Formatting Program
  2344.  
  2345.              Token   Expands to:                        Example
  2346.              ──────────────────────────────────────────────────────
  2347.              @MDr:   Drive for Main file                C:
  2348.              @MPa:   Path for Main file                 \MYDIR\
  2349.              @Mfn:   Main file name                     TEST.TXT
  2350.              @Mds:   Main file Creation date (short)    2-8-87
  2351.              @Mdl:   Main file creation date (long)     Feb 8, 1987
  2352.              @Mt12:  Main file creation time (12 hr)     4:32 pm
  2353.              @Mt24:  Main file creation time (24 hr)    16:32
  2354.              @IDr:   Drive for Include file             C:
  2355.              @IPa:   Path for Include file              \NEWDIR\
  2356.              @Ifn:   Include file name                  INCLD.TXT
  2357.              @Ids:   Include file creation date (short) 2-8-87
  2358.              @Idl:   Include file creation time (long)  Feb 8, 1987
  2359.              @It12:  Include file creation time (12 hr)  4:32 pm
  2360.              @It24:  Include file creation time (24 hr) 16:32
  2361.              @Cds:   Current date (short)               2-8-87
  2362.              @Cdl:   Current date (long)                Feb 8, 1987
  2363.              @Ct12:  Current time (12 hr)                4:36 pm
  2364.              @Ct24:  Current time (24 hr)               16:36
  2365.              @Pg[f]: Current Page Number                24
  2366.              @Ln[f]: Current Line Number                100
  2367.                      [f] is an optional format spec of
  2368.                      the form .w.f where w is the width
  2369.                      and f is a fill character.
  2370.  
  2371.         The Main file is the file specified by <list file> when listr
  2372.         is started.  If <list file> contains wild cards that expand to
  2373.         more than one file, the Main file tokens will reflect the data
  2374.         for each file as it is listed.
  2375.  
  2376.         Main file fields will not change as include files are listed.
  2377.         Include file parameters reflect the file currently being
  2378.         printed (which may be the Main file).
  2379.  
  2380.         All Title Tokens start with '@' and end with ':'.  The '@'
  2381.         character may be printed in a title by using '@@' in the
  2382.         title.  The following examples illustrate the use of Title
  2383.         Tokens in titles and margin text:
  2384.  
  2385.             Source File:
  2386.  
  2387.               .. textLen 30
  2388.               .. title 1 /@CDl://@Ct12:/
  2389.               .. title 2 /Page @pg:/Printed @@ @CT24://
  2390.  
  2391.             Resulting Titles:
  2392.  
  2393.               Feb 8, 1987            4:50 pm
  2394.               Page 1  Printed @ 16:50
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.         Version 3.11                 Page 31            February 22, 1989
  2406.  
  2407.  
  2408.         LISTR ───────────────────────────────── A Text Formatting Program
  2409.  
  2410.             Source File:
  2411.  
  2412.               .. LeftMgn 7
  2413.               .. MarginTxt /@Ln.3.0:: //
  2414.               ..LineNo 1 /* this resets the line after the commands */
  2415.               First Line
  2416.               Second Line
  2417.  
  2418.             Resulting Output:
  2419.  
  2420.                001: First Line
  2421.                002: Second Line
  2422.  
  2423.         Format Specs
  2424.  
  2425.         Print Tokens for pure numeric values accept an optional format
  2426.         specifier which can be used to control the field width and pad
  2427.         character used in printing the value.  This may be used to
  2428.         force leading zeros, or just to align numbers (such as line
  2429.         numbers) in the output.  The general form for a token with a
  2430.         format specifier is:
  2431.  
  2432.                              @Token[.w[.f]]:
  2433.  
  2434.         The w and f each represent a single character. 'w' is the
  2435.         width and must be 0 through 9.  'f' is a fill character used
  2436.         to pad the left of the field when the number has fewer than w
  2437.         digits.
  2438.  
  2439.         The width may be specified without including a fill character;
  2440.         a space will be used to fill in that case.
  2441.  
  2442.         Specifying a width of '0' will print the number with only the
  2443.         number of characters required, and no fill.  This is exactly
  2444.         the same as not using a format spec.  If a width other than
  2445.         zero is specified and the number exceeds the width of the
  2446.         field, the field will be filled with '*'.
  2447.  
  2448.         The following examples show effect of various formats for the
  2449.         for a line number of 1234.  The result is enclosed in quotes
  2450.         to emphasize leading space characters.
  2451.  
  2452.               Format      Result     Comments
  2453.               ─────────────────────────────────────────────────────
  2454.               @Ln:        '1234'     no format
  2455.               @Ln.0:      '1234'     same as no format
  2456.               @Ln.5:      ' 1234'    no fill char, so space is used
  2457.               @Ln.5.0:    '01234'    fill with leading '0'
  2458.               @Ln.3:      '***'      format too narrow
  2459.               @Ln.6.::    '::1234'   ':' may be used as fill char
  2460.               @Ln.6..:    '..1234'   '.' may be used as fill char
  2461.  
  2462.         Enclosing Text in Boxes and Forms
  2463.  
  2464.         By combining Titles, MarginTxt and the title and text margin
  2465.         controls the entire text of a document can be enclosed in a
  2466.         box or form.  The following example illustrates this:
  2467.  
  2468.  
  2469.  
  2470.         Version 3.11                 Page 32            February 22, 1989
  2471.  
  2472.  
  2473.         LISTR ───────────────────────────────── A Text Formatting Program
  2474.  
  2475.         Source file:
  2476.  
  2477.              ..TextLen 40
  2478.              ..TopLine 6
  2479.              ..BotLine 10
  2480.              ..PageLines 14
  2481.              ..LeftMgn 5
  2482.              ..TitleLeftMgn 3
  2483.              ..TitleLen 44
  2484.              ..Title 2  /┌──────────/───────────────────────/──────────┐/
  2485.              ..Title 3  /│ Test Document//Page @Pg.3.0: │/
  2486.              ..Title 4  /├──────────/───────────────────────/──────────┤/
  2487.              ..Title 5  /│//│/
  2488.              ..MarginTxt /│ / │/
  2489.              ..Title 11 /│//│/
  2490.              ..Title 12 /├──────────/───────────────────────/──────────┤/
  2491.              ..Title 13 /│/@CDl:/│/
  2492.              ..Title 14 /└──────────/───────────────────────/──────────┘/
  2493.              This text will be enclosed in
  2494.              the box form that was created.
  2495.              ..REM
  2496.              ..REM   The change in margins here shows
  2497.              ..REM   the order required to make margin
  2498.              ..REM   text and titles line up after a
  2499.              ..REM   change in margins.
  2500.              ..REM
  2501.              ..TitleOddMgn 5
  2502.              ..TitleEvenMgn 7
  2503.              ..newpage
  2504.              ..OddMgn 7
  2505.              ..EvenMgn 9
  2506.              This text is in a box with the margins
  2507.              shifted from the previous page.  Title
  2508.              margins were changed before the page
  2509.              break, and text margins after.
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.         Version 3.11                 Page 33            February 22, 1989
  2536.  
  2537.  
  2538.         LISTR ───────────────────────────────── A Text Formatting Program
  2539.  
  2540.         Resulting Output:
  2541.  
  2542.                 ┌──────────────────────────────────────────┐
  2543.                 │ Test Document                   Page 001 │
  2544.                 ├──────────────────────────────────────────┤
  2545.                 │                                          │
  2546.                 │ This text will be enclosed in            │
  2547.                 │ the box form that was created.           │
  2548.                 │                                          │
  2549.                 │                                          │
  2550.                 │                                          │
  2551.                 │                                          │
  2552.                 ├──────────────────────────────────────────┤
  2553.                 │                Feb 4, 1990               │
  2554.                 └──────────────────────────────────────────┘
  2555.  
  2556.                     ┌──────────────────────────────────────────┐
  2557.                     │ Test Document                   Page 002 │
  2558.                     ├──────────────────────────────────────────┤
  2559.                     │                                          │
  2560.                     │ This text is in a box with the margins   │
  2561.                     │ shifted from the previous page.  Title   │
  2562.                     │ margins were changed before the page     │
  2563.                     │ break, and text margins after.           │
  2564.                     │                                          │
  2565.                     │                                          │
  2566.                     ├──────────────────────────────────────────┤
  2567.                     │                Feb 4, 1990               │
  2568.                     └──────────────────────────────────────────┘
  2569.  
  2570.         COMMAND FILES
  2571.         ─────────────
  2572.         A command file is a file of LISTR commands which can be used
  2573.         to create a common format for similar documents or listings.
  2574.         The command file is specified on the command line when LISTR
  2575.         is invoked:
  2576.  
  2577.          LISTR [<list file>] [<command file>] [<output file>]
  2578.                  [listr command [listr command [...]]]
  2579.  
  2580.         If <command file> is not specified, LISTR will look for a
  2581.         default command file.  The default command file name is
  2582.         LISTRCMD, and the extension is the extension of the <list
  2583.         file> (i.e., if the list file is MYFILE.TXT, the default
  2584.         command file name is LISTRCMD.TXT).  If <list file> is a
  2585.         wildcard expression, the extension of the first matching file
  2586.         will be used to form the default command file name.
  2587.  
  2588.         The command file will be searched for in the drive and
  2589.         directory that were current when LISTR started.  If the
  2590.         command file is not found there, the directory specified by
  2591.         the DOS Environment string LISTRCMD= is searched.  If the
  2592.         command file is not found, no command file is used and
  2593.         an error message is generated.  The error message may be
  2594.         avoided by using '-' in place of <command file>.
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.         Version 3.11                 Page 34            February 22, 1989
  2601.  
  2602.  
  2603.         LISTR ───────────────────────────────── A Text Formatting Program
  2604.  
  2605.         The drive and path for command files may be set in the
  2606.         Environment space with the DOS SET command:
  2607.  
  2608.                    SET LISTRCMD=<drive:\path\>
  2609.  
  2610.         The final \ is optional; SET LISTRCMD=C:\LISTR\ is
  2611.         equivalent to SET LISTRCMD=C:\LISTR.  The SET command may be
  2612.         included in the AUTOEXEC.BAT file so that it will be loaded
  2613.         each time the system is started.  This is a convenient way
  2614.         to specify a central location where command files for common
  2615.         file types may be collected.
  2616.  
  2617.         Use SET LISTRCMD= without any drive or path to clear the
  2618.         setting.
  2619.  
  2620.         Each line in the command file may contain a LISTR command,
  2621.         introduced by the Command Lead or the Alternate Command Lead.
  2622.         Lines which do not have one of these lead strings as the first
  2623.         non-blank characters on the line will be ignored (and may be
  2624.         used as comments).  Additional comments may be included after
  2625.         all expected parameters on a line with a command (except for
  2626.         commands that take a variable number of parameters such as
  2627.         SetBreak).
  2628.  
  2629.         Example Command Files for Turbo Pascal program listings:
  2630.  
  2631.         The following text could be included in the file LISTRCMD.PAS
  2632.         to be used in formatting Turbo Pascal listings:
  2633.  
  2634.              /* Command File for Turbo Pascal:
  2635.              ..CmdLead {@   -- commands will be in Pascal comments
  2636.              {@Title  2  /Listing of//@Mfn:  @mdl:  @mt12:/
  2637.              {@Title 63  /Listed @cdl:  at  @ct12://Page @pg/
  2638.              {@Wrap ON
  2639.              {@WrapIndent 4
  2640.              /* Set AltCmdLead {$ and make I a synonym for Include so
  2641.              /* included files will be listed.  These lines will be
  2642.              /* printed as well with PrintAlt ON.
  2643.              {@PrintAlt ON
  2644.              {@AltCmdLead {$
  2645.              {@Synonym Include I
  2646.              /* The following synonyms prevent an 'Unknown Command'
  2647.              /* error from being generated by compiler directives
  2648.              /* other than {$I which was defined as 'Include'
  2649.              {$synonym rem R-}
  2650.              {$synonym rem B-}
  2651.              {$synonym rem S-}
  2652.              {$synonym rem I+}
  2653.              {$synonym rem N-}
  2654.              {$synonym rem M
  2655.              {$synonym rem I-}
  2656.              {$synonym rem V-}
  2657.              {$synonym rem V+}
  2658.  
  2659.         The first line is a comment identifying the file as a Pascal
  2660.         command file.
  2661.  
  2662.         The first command re-defines the command lead in string to be
  2663.         '{@'.  This will allow LISTR commands to be included in the
  2664.  
  2665.         Version 3.11                 Page 35            February 22, 1989
  2666.  
  2667.  
  2668.         LISTR ───────────────────────────────── A Text Formatting Program
  2669.  
  2670.         Pascal source file as Pascal comments.
  2671.  
  2672.         The second and third commands define titles which identify the
  2673.         source file and indicate the time of the listing.
  2674.  
  2675.         The next 2 lines set the wrap and indent parameters so that
  2676.         lines that are too long to list will be indented on following
  2677.         lines.
  2678.  
  2679.         The next 3 lines are comments.  As the comments indicate, the
  2680.         next block of commands lines should be included if it is
  2681.         desired to list all include files as well as the main file.
  2682.         The PrintAlt will cause the Include statements and other
  2683.         TURBO Pascal compiler directives starting with {$ to be
  2684.         printed.  The commands after the next comment group define
  2685.         other TURBO Pascal compiler directives to be synonyms with
  2686.         Rem.  This is not necessary, but prevents 'Unknown Command'
  2687.         error messages.
  2688.  
  2689.         An Alternate Pascal Command File:
  2690.  
  2691.         This version of LISTRCMD.PAS will prevent the printing of
  2692.         program lines starting with '(*deb'.  Debug statements in the
  2693.         program such as the following will not be printed in the
  2694.         listing:
  2695.  
  2696.           (*debug*) writeln('X=', x);
  2697.           (*debug   writeln('Y=', y); *)
  2698.  
  2699.         The Command File:
  2700.  
  2701.              ..CmdLead {@
  2702.              {@Title  2  /Listing of//@Mfn:  @mdl:  @mt12:/
  2703.              {@Title 63  /Listed @cdl:  at  @ct12://Page @pg/
  2704.              {@Wrap ON
  2705.              {@WrapIndent 4
  2706.              {@PrintAlt OFF
  2707.              {@AltCmdLead (*deb
  2708.  
  2709.  
  2710.         LISTR COMMANDS ON THE COMMAND LINE
  2711.         ──────────────────────────────────
  2712.         LISTR commands may be specified after the three file names on
  2713.         the command line:
  2714.  
  2715.          LISTR [<list file>] [<command file>] [<output file>]
  2716.                  [listr command [listr command [...]]]
  2717.  
  2718.         Commands included on the command line are executed after the
  2719.         command file is loaded, so they may be used to override
  2720.         commands in the command file.
  2721.  
  2722.         Each command on the command line must be preceded by a virgule
  2723.         (/) or a hyphen (-), rather than by the Command Lead or
  2724.         Alternate Command Lead.
  2725.  
  2726.         The characters '<', '>' and '|' are used by DOS to indicate IO
  2727.         redirection and piping.  In order to keep these characters
  2728.         from being intercepted by DOS, they must be enclosed in quote
  2729.  
  2730.         Version 3.11                 Page 36            February 22, 1989
  2731.  
  2732.  
  2733.         LISTR ───────────────────────────────── A Text Formatting Program
  2734.  
  2735.         marks ("")when used on the command line.  A quote may be
  2736.         included in a string by using two consecutive quotes.
  2737.  
  2738.         Consecutive spaces on the command line will be reduced to a
  2739.         single space character.  This is true even if the spaces are
  2740.         within quotes.  In most cases, a literal ASCII value (32
  2741.         for space) can be used to get multiple spaces into a
  2742.         parameter.
  2743.  
  2744.         Examples:
  2745.  
  2746.             LISTR *.txt * * /textlen 20 /leftmgn 3
  2747.  
  2748.         This example lists all files with the .TXT extension on the
  2749.         current drive.  The default command file (LISTRCMD.TXT) will
  2750.         be used, and output goes to the printer.  After the command
  2751.         file has been loaded, TextLen is set to 20 and LeftMgn is set
  2752.         to 3.
  2753.  
  2754.             LISTR *.txt - * /setupstrg "'abc' 32 32 >"
  2755.  
  2756.         This prints all .txt files to the printer using no command
  2757.         file.  The SetupStrg command sends the characters a, b and c,
  2758.         two spaces (ASCII 32 is a space) and > to the printer
  2759.         (presumably as a setup or control string).  The parameter were
  2760.         enclosed in quotes so that the > would not be intercepted by
  2761.         DOS.  The two spaces were specified by their ASCII value
  2762.         because multiple spaces on the command line are reduced to a
  2763.         single space.
  2764.  
  2765.             listr myfile.txt - tmp.out -setbreak " '+=/*<> ' "
  2766.  
  2767.         List myfile.txt with no command file to tmp.out.  Line break
  2768.         characters are set to +, -, /, *, <, > and space.  Again,
  2769.         quotes were used because of the < and > characters that DOS
  2770.         would interpret as file redirection.  The spaces between the
  2771.         single and double quotes are for clarity; they may be
  2772.         omitted.
  2773.  
  2774.             Listr test.txt * * -CmdLead @@@
  2775.  
  2776.         List test.txt to PRN (second *) using LISTRCMD.TXT (first *),
  2777.         and change CmdLead to @@@.  This might be used if there are no
  2778.         LISTR Commands embedded in test.txt, but there are lines
  2779.         starting with .. (or the CmdLead established in LISTRCMD.TXT).
  2780.         CmdLead @@@ will be executed after the command file is loaded,
  2781.         but before test.txt is listed.
  2782.  
  2783.         The number of commands which can be included on the command
  2784.         line is limited by the maximum command line length, which is
  2785.         127 characters (a DOS limit).
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.         Version 3.11                 Page 37            February 22, 1989
  2796.  
  2797.  
  2798.         LISTR ───────────────────────────────── A Text Formatting Program
  2799.  
  2800.         DOS DEVICES
  2801.         ───────────
  2802.         LISTR recognizes the following file names as DOS devices:
  2803.  
  2804.             Name   Device
  2805.             ─────────────────────────────────────────────────────
  2806.             CON    Console (Keyboard for input, Screen for output)
  2807.             PRN    Printer (same as LPT1)
  2808.             LPT1   First Parallel Printer (output only)
  2809.             LPT2   Second Parallel Printer (output only)
  2810.             LPT3   Third Parallel Printer (output only)
  2811.             AUX    Serial Port (same as COM1)
  2812.             COM1   First Serial Port (input or output)
  2813.             COM2   Second Serial Port (input of output)
  2814.             COM3   Third Serial Port (input or output)
  2815.             COM4   Fourth Serial Port (input or output)
  2816.             NUL    Dummy Device (generates immediate end of file
  2817.                    when used for input, discards data when used
  2818.                    for output).
  2819.  
  2820.         Input devices may be used as the <list file> or <command
  2821.         file>, and output devices may be used as the <output file>.
  2822.         Device names may be entered as shown or with a trailing colon
  2823.         (CON or CON:).
  2824.  
  2825.         Example:
  2826.  
  2827.             Listr CON: NUL LPT1
  2828.  
  2829.         Takes input from the keyboard, reads an empty command file
  2830.         from NUL, and writes the result to the first parallel printer.
  2831.  
  2832.         I/O REDIRECTION
  2833.         ───────────────
  2834.         LISTR supports I/O redirection, which allows input which would
  2835.         normally come from the keyboard to be read from a file or
  2836.         device, and output which would normally go to the screen to be
  2837.         sent to a file or device.  Redirection is accomplished by
  2838.         preceding an output file name with >, and an input source
  2839.         file with <.
  2840.  
  2841.         LISTR does not expect any keyborad input in normal operation.
  2842.         The only input required is when an error is encountered and
  2843.         the user is prompted to correct the problem.  Output from
  2844.         LISTR includes the file names, page numbers and error
  2845.         messages.  Redirecting input is probably not too useful;
  2846.         sending LISTR's output to a file could be helpful if a large
  2847.         number of errors are encountered.  All error messages may be
  2848.         collected in a file for further analysis.
  2849.  
  2850.         Example:
  2851.  
  2852.             listr MYFILE.TXT * tmp.out >err.log
  2853.  
  2854.         File MYFILE.TXT will be listed to the file tmp.out using
  2855.         LISTRCMD.TXT if it is found.
  2856.  
  2857.  
  2858.  
  2859.  
  2860.         Version 3.11                 Page 38            February 22, 1989
  2861.  
  2862.  
  2863.         LISTR ───────────────────────────────── A Text Formatting Program
  2864.  
  2865.         If LISTR encounters no errors in processing MYFILE.TXT,
  2866.         'err.log' should contain something similar to the following:
  2867.  
  2868.         LISTR version 3.11 Copyright (c) 1986,87,88,89,92 B. W. Miller
  2869.         List to: C:\LISTR\TMP.OUT
  2870.         Command: C:\LISTR\LISTRCMD.TXT
  2871.         Listing: C:\LISTR\MYFILE.TXT
  2872.           Page:   1
  2873.  
  2874.         The page number on the screen is terminated by a carriage
  2875.         return (CR) without a line feed (LF).  This prevents the
  2876.         display from scrolling, and results in the incrementing page
  2877.         number display.  When the output is redirected to a file, the
  2878.         file will have lines terminated with only CR.  Some editors
  2879.         will display these as separate lines; using DOS TYPE will
  2880.         result in a high speed replay of the incrementing line
  2881.         numbers.
  2882.  
  2883.         If the CR only lines pose a problem, list the output file to a
  2884.         new file with LISTR.  The lines in the new file will have
  2885.         CR-LF termination.  Be sure to use a new name for the second
  2886.         output; if the same name is used, the resulting file will be
  2887.         empty.
  2888.  
  2889.         LISTR AND BATCH FILES
  2890.         ─────────────────────
  2891.         If LISTR is executed from a batch file, the number of
  2892.         parameters passed may limit the use of Listr commands on the
  2893.         command line.  If LISTR.EXE is in C:\LISTR, and the following
  2894.         line is in C:\LISTRB.BAT:
  2895.  
  2896.             C:\LISTR\LISTR %1 %2 %3 %4 %5 %6 %7 %8 %9
  2897.  
  2898.         if LISTR was executed from C:\ by entering a line such as:
  2899.  
  2900.             LISTRB myfile.txt * * /SetupStrg " '>' 32 32 'a' $1A "
  2901.  
  2902.         the $1A and final " would not be passed to LISTR.  Each group
  2903.         of characters separated by one or more spaces becomes a
  2904.         separate parameter in the .BAT file.  Only the first 9
  2905.         parameters get passed through.
  2906.  
  2907.         It should also be noted that redirection may not work as
  2908.         expected when using a batch file.  The line:
  2909.  
  2910.             LISTRB myfile.txt * * >temp.out
  2911.  
  2912.         would not result in LISTR's output going to temp.out.
  2913.         '>temp.out' is intercepted by DOS and not passed to the .BAT
  2914.         file.  The file temp.out will be empty, and LISTR's output
  2915.         will go to the screen.
  2916.  
  2917.         LISTR EXIT CODE
  2918.         ───────────────
  2919.         When LISTR terminates, it returns an exit code that indicates
  2920.         whether LISTR completed its operation normally or encountered
  2921.         one or more errors.  This exit code may be tested in a batch
  2922.         file with the IF ERRORLEVEL command, or it may be tested by
  2923.         another program that executed LISTR.  The exit codes are as
  2924.  
  2925.         Version 3.11                 Page 39            February 22, 1989
  2926.  
  2927.  
  2928.         LISTR ───────────────────────────────── A Text Formatting Program
  2929.  
  2930.         follows:
  2931.  
  2932.             Code   Meaning
  2933.             ─────────────────────────────────────────────────────
  2934.              0     LISTR executed without error (normal return)
  2935.              1     LISTR encountered one or more non-fatal errors.
  2936.                    Non-fatal errors are errors such as invalid
  2937.                    commands or invalid parameters.
  2938.              2     LISTR encountered a fatal error and aborted.  Fatal
  2939.                    errors are conditions such as file not found that
  2940.                    prevent any processing from taking place.
  2941.  
  2942.         LINE LENGTHS, CARRIAGE RETURN AND LINE FEED
  2943.         ───────────────────────────────────────────
  2944.         LISTR will accept lines as long as 255 characters.  If an
  2945.         input line is longer than 255 characters, it will be
  2946.         truncated.
  2947.  
  2948.         LISTR will recognize carriage return (ASCII 13) or carriage
  2949.         return + line feed (ASCII 10) as the end of a line.  Line feed
  2950.         alone will not end a line.
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990.         Version 3.11                 Page 40            February 22, 1989
  2991.  
  2992.  
  2993.         LISTR ───────────────────────────────── A Text Formatting Program
  2994.  
  2995.         QUESTIONS AND ANSWERS
  2996.         ─────────────────────
  2997.  
  2998.         Q:  I inadvertently pressed <Enter> after typing LISTR at the
  2999.             at the DOS prompt.  How can I exit from the File: prompt
  3000.             without listing a file?
  3001.         A:  Just press <Enter> again.  LISTR will terminate if no name
  3002.             is specified.
  3003.  
  3004.         Q:  How can I interrupt LISTR and get back to DOS without
  3005.             waiting for a long listing to finish?
  3006.         A:  Press Control-C (hold down the key marked Ctrl and press
  3007.             C).  It may take a few seconds before LISTR halts; the
  3008.             Control-C will be recognized then next time LISTR writes
  3009.             to the screen.
  3010.  
  3011.         Q:  After listing a file, the last portion of the text is
  3012.             missing.  What could cause that?
  3013.         A:  Look for a ..KeepTo without a matching ..EndKeep.  Text
  3014.             following ..KeepTo is not printed until the ..EndKeep is
  3015.             encountered.
  3016.  
  3017.         Q:  I accidentally redirected LISTR output to the same file as
  3018.             was specified for the output file (i.e., LISTR infile.txt
  3019.             * out.txt >out.txt).  Where is the output?
  3020.         A:  The output file will have the screen output from LISTR.
  3021.             The listed output was written to disk, but the file was
  3022.             lost.  The disk may have "unallocated file chains" as a
  3023.             result.  Run CHKDSK to gather up the unallocated space
  3024.             (see DOS documentation).
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.  
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.         Version 3.11                 Page 41            February 22, 1989
  3056.  
  3057.  
  3058.         LISTR ───────────────────────────────── A Text Formatting Program
  3059.  
  3060.         LISTR COMMAND REFERENCE (by function)  {Default}
  3061.         ────────────────────────────────────────────────
  3062.           LISTR Control Commands:
  3063.             CmdLead       <prefix>      {..}
  3064.             AltCmdLead    <prefix>      {}
  3065.             PrintCmd      ON|OFF        {OFF}
  3066.             PrintAlt      ON|OFF        {OFF}
  3067.             Replace       <old command> <new command>
  3068.             Synonym       <command> <command synonym>
  3069.             Rem
  3070.           Listing Format Commands:
  3071.             PageLines     #Lines        {66}
  3072.             PageCols      #Columns      {80}
  3073.             TopLine       #Line         { 6}
  3074.             BotLine       #Line         {60}
  3075.             PageNo        #Page         { 1}
  3076.             LineNo        #Line         { 1}
  3077.             LeftMgn       #Columns      { 5}
  3078.             OddMgn        #Columns      { 5}
  3079.             EvenMgn       #Columns      { 5}
  3080.             TextLen       #Columns      {70}
  3081.             TitleMgns     ON|OFF        {OFF}
  3082.             TitleLeftMgn  #Columns      { 5}
  3083.             TitleOddMgn   #Columns      { 5}
  3084.             TitleEvenMgn  #Columns      { 5}
  3085.             TitleLen      #Columns      {70}
  3086.             Wrap          ON|OFF        {ON}
  3087.             WrapIndent    #Spaces       { 2}
  3088.             WrapMark      <delim><stg><delim><stg><delim>   {///}
  3089.             AutoIndent    ON|OFF        {ON}
  3090.             Break         ON|OFF        {ON}
  3091.             SetBreak      '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  3092.                            ['<stg>'|<cde>|$<hex> [...]]      {9 ' '}
  3093.             Tabs          ON|OFF        {ON}
  3094.             SetTabs       ALL | (#Column [#Column [#Column [ ... ]]])
  3095.                           {9, 17, 25 ... increment by 8 to 249}
  3096.             ClearTabs     ALL | (#Column [#Column [#Column [ ... ]]])
  3097.             Xlate         ON|OFF        {OFF}
  3098.             SetXlate      CLR | ('<chr>'|<cde>|$<hex>:
  3099.                            '<chr>'|<cde>|$<hex> ['<chr>'|<cde>|$<hex>:
  3100.                            '<chr>'|<cde>|$<hex> [...]])         {CLR}
  3101.             NewPage
  3102.             CondPg        #Lines
  3103.             KeepTo
  3104.             Title         #Line /left/center/right/
  3105.             MarginTxt     /left/right/  {///}
  3106.             Include       <file spec>
  3107.             EndKeep
  3108.             Include       <file spec>
  3109.             NewFilePg     ON|OFF|#Page  {OFF, 1}
  3110.             NewFileLn     ON|OFF|#Line  {ON, 1}
  3111.           Printer Control Commands:
  3112.             Eject         ON|OFF        {ON}
  3113.             FormFeed      ON|OFF        {ON}
  3114.             FormFeedChar   '<chr>'|<cde>|$<hex>  {012}
  3115.             SetupFile     <file name>
  3116.             SetupStrg     '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  3117.                              ['<stg>'|<cde>|$<hex> [ ... ]]]
  3118.  
  3119.  
  3120.         Version 3.11                 Page 42            February 22, 1989
  3121.  
  3122.  
  3123.         LISTR ───────────────────────────────── A Text Formatting Program
  3124.  
  3125.         LISTR COMMAND REFERENCE (alphabetical)  {Default}
  3126.         ─────────────────────────────────────────────────
  3127.  
  3128.             AltCmdLead    <prefix>      {}
  3129.             AutoIndent    ON|OFF        {ON}
  3130.             BotLine       #Line         {60}
  3131.             Break         ON|OFF        {ON}
  3132.             ClearTabs     ALL | (#Column [#Column [#Column [ ... ]]])
  3133.             CmdLead       <prefix>      {..}
  3134.             CondPg        #Lines
  3135.             Eject         ON|OFF        {ON}
  3136.             EndKeep
  3137.             EvenMgn       #Columns      { 5}
  3138.             FormFeed      ON|OFF        {ON}
  3139.             FormFeedChar   '<chr>'|<cde>|$<hex>  {012}
  3140.             Include       <file spec>
  3141.             Include       <file spec>
  3142.             KeepTo
  3143.             LeftMgn       #Columns      { 5}
  3144.             LineNo        #Line         { 1}
  3145.             MarginTxt     /left/right/  {///}
  3146.             NewFileLn     ON|OFF|#Line  {ON, 1}
  3147.             NewFilePg     ON|OFF|#Page  {OFF, 1}
  3148.             NewPage
  3149.             OddMgn        #Columns      { 5}
  3150.             PageCols      #Columns      {80}
  3151.             PageLines     #Lines        {66}
  3152.             PageNo        #Page         { 1}
  3153.             PrintAlt      ON|OFF        {OFF}
  3154.             PrintCmd      ON|OFF        {OFF}
  3155.             Rem
  3156.             Replace       <old command> <new command>
  3157.             SetBreak      '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  3158.                            ['<stg>'|<cde>|$<hex> [...]]      {9 ' '}
  3159.             SetTabs       ALL | (#Column [#Column [#Column [ ... ]]])
  3160.                           {9, 17, 25 ... increment by 8 to 249}
  3161.             SetXlate      CLR | ('<chr>'|<cde>|$<hex>:
  3162.                            '<chr>'|<cde>|$<hex> ['<chr>'|<cde>|$<hex>:
  3163.                            '<chr>'|<cde>|$<hex> [...]])         {CLR}
  3164.             SetupFile     <file name>
  3165.             SetupStrg     '<stg>'|<cde>|$<hex> ['<stg>'|<cde>|$<hex>
  3166.                              ['<stg>'|<cde>|$<hex> [ ... ]]]
  3167.             Synonym       <command> <command synonym>
  3168.             Tabs          ON|OFF        {ON}
  3169.             TextLen       #Columns      {70}
  3170.             Title         #Line /left/center/right/
  3171.             TitleEvenMgn  #Columns      { 5}
  3172.             TitleLeftMgn  #Columns      { 5}
  3173.             TitleLen      #Columns      {70}
  3174.             TitleMgns     ON|OFF        {OFF}
  3175.             TitleOddMgn   #Columns      { 5}
  3176.             TopLine       #Line         { 6}
  3177.             Wrap          ON|OFF        {ON}
  3178.             WrapMark      <delim><stg><delim><stg><delim>   {///}
  3179.             WrapIndent    #Spaces       { 2}
  3180.             Xlate         ON|OFF        {OFF}
  3181.  
  3182.  
  3183.  
  3184.  
  3185.         Version 3.11                 Page 43            February 22, 1989
  3186.  
  3187.  
  3188.         LISTR ───────────────────────────────── A Text Formatting Program
  3189.  
  3190.         LISTR TITLE TOKEN REFERENCE
  3191.         ───────────────────────────
  3192.  
  3193.             Token   Expands to:                        Example
  3194.             ──────────────────────────────────────────────────────
  3195.             @MDr:   Drive for Main file                C:
  3196.             @MPa:   Path for Main file                 \MYDIR\
  3197.             @Mfn:   Main file name                     TEST.TXT
  3198.             @Mds:   Main file Creation date (short)    2-8-87
  3199.             @Mdl:   Main file creation date (long)     Feb 8, 1987
  3200.             @Mt12:  Main file creation time (12 hr)     4:32 pm
  3201.             @Mt24:  Main file creation time (24 hr)    16:32
  3202.             @IDr:   Drive for Include file             C:
  3203.             @IPa:   Path for Include file              \NEWDIR\
  3204.             @Ifn:   Include file name                  INCLD.TXT
  3205.             @Ids:   Include file creation date (short) 2-8-87
  3206.             @Idl:   Include file creation time (long)  Feb 8, 1987
  3207.             @It12:  Include file creation time (12 hr)  4:32 pm
  3208.             @It24:  Include file creation time (24 hr) 16:32
  3209.             @Cds:   Current date (short)               2-8-87
  3210.             @Cdl:   Current date (long)                Feb 8, 1987
  3211.             @Ct12:  Current time (12 hr)                4:36 pm
  3212.             @Ct24:  Current time (24 hr)               16:36
  3213.             @Pg[f]: Current Page Number                24
  3214.             @Ln[f]: Current Line Number                100
  3215.             ──────────────────────────────────────────────────────
  3216.                     [f] is an optional format spec of
  3217.                     the form .w.f where w is the width
  3218.                     and f is a fill character.
  3219.  
  3220.  
  3221.  
  3222.  
  3223.                            LISTR Registration Form
  3224.                            =======================
  3225.  
  3226.         Please register me as a user of LISTR.  I use LISTR, and would
  3227.         like to be eligible for user support for 90 days and to be
  3228.         notified of future versions of LISTR as they become available.
  3229.  
  3230.            Registration Fee                                   $15.00
  3231.  
  3232.            Name:____________________________________________________
  3233.  
  3234.            Address:_________________________________________________
  3235.  
  3236.                    _________________________________________________
  3237.  
  3238.                    _________________________________________________
  3239.  
  3240.                    _________________________________________________
  3241.  
  3242.            ( ) My check or money order for $15.00 (US funds) is
  3243.                included.
  3244.  
  3245.            I want any updates supplied on ( ) 3½" disks ( ) 5¼" disks
  3246.  
  3247.            I am currently using LISTR version ______________________
  3248.  
  3249.            I obtained LISTR from ___________________________________
  3250.  
  3251.            _________________________________________________________
  3252.  
  3253.            I use LISTR for _________________________________________
  3254.  
  3255.            _________________________________________________________
  3256.  
  3257.            _________________________________________________________
  3258.  
  3259.         ==============================================================
  3260.         Mail this completed form along with your payment to:
  3261.  
  3262.                                Brent W. Miller
  3263.                                565 Ninth Avenue
  3264.                              Menlo Park, CA 94025
  3265.  
  3266.         Receipt of your registration will be acknowledged by return
  3267.         mail.
  3268.                    _______
  3269.               ____|__     |               (R)
  3270.            --|       |    |-------------------
  3271.              |   ____|__  |  Association of
  3272.              |  |       |_|  Shareware
  3273.              |__|   o   |    Professionals
  3274.            -----|   |   |---------------------
  3275.                 |___|___|    MEMBER
  3276.  
  3277.         2/16/92
  3278.  
  3279.